关于MATLAB cell元胞数组中元素的引用问题
a{1}='aaa';a{2}='bbb';那么a='aaa''bbb'要引用元素a(1)='aaa'a{1}=aaa请问a(1)和a{1}的区别是怎么回事,怎么一个有引...
a{1}='aaa';
a{2}='bbb';
那么
a='aaa' 'bbb'
要引用元素
a(1)='aaa'
a{1}=aaa
请问a(1)和a{1}的区别是怎么回事,怎么一个有引号一个没有呢 展开
a{2}='bbb';
那么
a='aaa' 'bbb'
要引用元素
a(1)='aaa'
a{1}=aaa
请问a(1)和a{1}的区别是怎么回事,怎么一个有引号一个没有呢 展开
展开全部
Matlab的迅孙元胞数组是cell类型,可以有很多方法创建渗盯cell,对于你的要求,可以这样:
1c = {'beijing' 'capital of China' 'famous city'}
定义方式(包括空格、逗号和分好的使丛昌和用)跟普通数组一样,只是使用{ }。
当然也可以这样:
1234c = cell(1,3);c{1,1} = 'beijing';c{1,2} = 'capital of China';c{1,3} = 'famous city';
cell的成员有两种引用方式:
c(1,1)返回的是cell类型,大小为1*1的cell
c{1,1}返回的是那个元素本身的类型,在上面的例子里就是字符串
1c = {'beijing' 'capital of China' 'famous city'}
定义方式(包括空格、逗号和分好的使丛昌和用)跟普通数组一样,只是使用{ }。
当然也可以这样:
1234c = cell(1,3);c{1,1} = 'beijing';c{1,2} = 'capital of China';c{1,3} = 'famous city';
cell的成员有两种引用方式:
c(1,1)返回的是cell类型,大小为1*1的cell
c{1,1}返回的是那个元素本身的类型,在上面的例子里就是字符串
展开全部
一般的引用方式一般是用a{ },看你的习惯了,也不是说a(1)不对,两个都对。
其实这两个输出有差别关键就在于,假如我们新建了一个cell(1,2),那么我们给他赋值的形式可以是:a{1}='aaa',也可以是a(1)={'aaa'} ,所以,你引用里面的元素的时候,自然也有对应的两种方式:a{1} 和a(1) ,我们可以看到: a{1}=aaa a(1)='aaa' ,其实这里面的aaa和'aaa'都是字符串。因为前面的a{1}里面已经有大括号了,所以后面就不用了再显示' '了,这也就间接的说明,{}的作用的 ''的作用其实是差不多的。只是一个作用在角标上,一个作用在真正的字符上。所以捏,显示有所差别。
给你个例子你就明白了:
num2str('ddddddd')
ans =
ddddddd
一个字符串在matlab已经知道他是字符串的情况下就会把''去掉。
但是致命的地方不是这里,你仔细在你的工作空间观察,你会发现握逗塌,其实a(1)还是一个段圆细胞,是一个结构,不能进行运算;而a{1}是一个真正的变量,真正能指租够进行数值运算!!
你能够算:a{1}+2 但是不能算a(1)+2 !!!!!!!
其实这两个输出有差别关键就在于,假如我们新建了一个cell(1,2),那么我们给他赋值的形式可以是:a{1}='aaa',也可以是a(1)={'aaa'} ,所以,你引用里面的元素的时候,自然也有对应的两种方式:a{1} 和a(1) ,我们可以看到: a{1}=aaa a(1)='aaa' ,其实这里面的aaa和'aaa'都是字符串。因为前面的a{1}里面已经有大括号了,所以后面就不用了再显示' '了,这也就间接的说明,{}的作用的 ''的作用其实是差不多的。只是一个作用在角标上,一个作用在真正的字符上。所以捏,显示有所差别。
给你个例子你就明白了:
num2str('ddddddd')
ans =
ddddddd
一个字符串在matlab已经知道他是字符串的情况下就会把''去掉。
但是致命的地方不是这里,你仔细在你的工作空间观察,你会发现握逗塌,其实a(1)还是一个段圆细胞,是一个结构,不能进行运算;而a{1}是一个真正的变量,真正能指租够进行数值运算!!
你能够算:a{1}+2 但是不能算a(1)+2 !!!!!!!
追问
嗯,关于a()和a{}的区别知道了,一个是结构,一个是内容。另外,
num2str()是将数字转化为对应的字符串,num2str('ddddddd'),如果已经是字符串了,就不再转化了,直接显示,对吧?
追答
num2str()的功能是把数值转换成字符串,如果说matlab已经识别出是字符串了,当然就不用转换了。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
引用方式一般是用a{ }。在 matlab 中,所有的数组都可以用“(i)”来表示其中的第i个元素,元胞数组还可以用“{i}”,表示第磨含i个cell内部。比如我们想定义一个元胞数组 a,睁蔽并想给 a 的第一个元素赋值一个矩阵 [1 2 3],则有两种办法:
(1)直接给 a 的第一个元胞内部赋值一个矩阵 [1 2 3]:a{1} = [1 2 3];(2)给 a 的悉游州第一个原素赋值一个元胞,元胞内部是矩阵 [1 2 3]:a(1) = {[1 2 3]}{[1 2 3]} 表示矩阵 [1 2 3] 放在一个元胞内,然后在给数组 a 第一个元素,因为这是个数组,所以 a 是一个元胞数组。上面两种方式等价。
(1)直接给 a 的第一个元胞内部赋值一个矩阵 [1 2 3]:a{1} = [1 2 3];(2)给 a 的悉游州第一个原素赋值一个元胞,元胞内部是矩阵 [1 2 3]:a(1) = {[1 2 3]}{[1 2 3]} 表示矩阵 [1 2 3] 放在一个元胞内,然后在给数组 a 第一个元素,因为这是个数组,所以 a 是一个元胞数组。上面两种方式等价。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询