• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

matlab中(),[],与{}的区别认识

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

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

[]
首先。[]叫中括号,它用来存储矩阵和向量(vector在C++中也叫容器)
举个例子,a=[1,2,3],是一个向量,这个向量有3个元素,也可以用a=[1 2 3]
eg:

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

{ }
大括号,用于cell型的数组(就是前面讲的单元数组)的分配或引用。
比如 a{3,3}=‘china’就是建立了一个33的单元数组,a(3,3)就是‘china’
比如c={‘china’,’中国’,[1 2 3 4]}运行结果如下

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

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

最后看一下单元数组和普通数组的关系。
比如我建立了一个单元数组:
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矩阵中的元素
运行如下

补充些说明:一般来说{}存储元胞类型的;[]还可用于连接(扩充)同类型元素,比如元胞、字符、数值,但必须是同类型;()一般用于索引元素,元素可以是元胞、字符、数值(同类型);元胞类型的赋值可以是A{1,1}=‘this is cell’,的形式,也可以是A(1,1)={‘12123’}的形式,一般从多维元胞中提取部分元胞时,索引需要使用()形式,即A([1:5,7,8:15])这种类型,A{i,j}只是提取具体位置的元胞内容;元胞的提取可以层级进行,即{}()的形式,但要注意每层提取时的数据类型,例如c={{‘china’,‘is’,‘number’,[1]},‘中国’,[1 2 3 4]},提取number的格式为c{1,1}{1,3},提取m份格式为c{1,1}{1,3}(1,3);元胞为i×j的大小时,删除某行(或某列)位置的元胞,即A(i,:)=[], A{i,j}=[]相当于赋值(A{}只能提取一个位置的内容,不能通过A{[xxx],[xxx]}进行整体的赋值,需要使用A([xxx],[xxx])={内容}的格式,等号右边的{}不能省,即必须是元胞格式); 元胞挺绕的,写下来备忘。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
远程桌面启动matlab发布时间:2022-07-18
下一篇:
Manjaro Rust环境搭建发布时间:2022-07-18
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap