中国汽车工程师之家--聚集了汽车行业80%专业人士 

论坛口号:知无不言,言无不尽!QQ:542334618 

本站手机访问:直接在浏览器中输入本站域名即可 

  • 138查看
  • 0回复

[MATLAB] Matlab中(),[],与{}的区别

[复制链接]


该用户从未签到

发表于 29-3-2024 09:57:57 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


前言:Matlab最核心就是矩阵表达式,在矩阵表达式经常会遇到(),[],与{}三种符号,它们的具体区别究竟是什么,下面捋一捋
Matlab中(),[],与{}的区别w1.jpg



Matlab中(),[],与{}的区别w3.jpg



在Matlab中,常常会遇到(),[],和{},这个3种符号怎么区分,怎么用,这里总结一下,供参考。


1、[]

[]叫中括号,它用来存储矩阵和向量。
举个例子,a=[1,2,3],是一个向量,这个向量有3个元素,分别是1,2 ,3。a是一个1*3的矩阵。

注:Matlab矩阵是先算行,在算列,其中,表示一行;表示一列
example:

Matlab中(),[],与{}的区别w4.jpg

对于a=[1 2 3;2 3 4 ;3 4 5],就是一个3*3矩阵

Matlab中(),[],与{}的区别w5.jpg



2、{ }

大括号,用于cell型的数组(也称为元组)的分配或引用。
比如 a{3,3}='china'就是建立了一个3*3的单元数组,a(3,3)就是'china';

注:如果你问a(2,1)这个元祖内容为啥,很简单,为空
Matlab中(),[],与{}的区别w6.jpg

比如c={'china','中国',[1 2 3 4]}运行结果如下

Matlab中(),[],与{}的区别w7.jpg

比如:A(2,1) = {[1 2 3; 4 5 6]},就是一个2行一列的单元数组,第二行第一列的元素就是[1 2 3;4 5 6]的2*1矩阵


3、( )

小括号,用于引用数组的元素。
如 X(3)就是X的第三个元素。X([1 2 3])就是X的头三个元素。
用[]建立一个非cell数组。
a=[1 2 2]
则a(1,2)就是访问的a数组的第一行第2列元素,为2。

如果是a(2,1)呢,那就报错,a矩阵没有第二行第一列元素。



4、总结对比

看一下单元数组和普通数组的关系。比如建立了一个单元数组:

a=cell(2,3)a(1,2)=’china’; %这种写法是错的a{1,2}=’china’; %这种写法才对
因为大括号才代表单元数组赋值,小括号只能是普通数组中的元素,如下

a{1,3}=[1 2 3;2 3 4];b=a{1,3}(1,3)   %这样才能取出上面2*3矩阵中的元素
运行如下

Matlab中(),[],与{}的区别w8.jpg

Matlab中(),[],与{}的区别w9.jpg

普通的数值计算常用[]和(),但在深度学习、数据分析等方面常用{}也是就是cell元祖,为啥呢?因为cell能够存放非数字
Matlab中(),[],与{}的区别w10.jpg

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 22-11-2024 21:03 , Processed in 0.352396 second(s), 31 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.