刚开始学习接触matlab,有许多地方有疑问,想在学习的过程中做一些简单的记录与总结。
下面是想创建一个元胞数组,2*2的。
B(1,1)={'This is the first cell'};
B(1,2)={5+6*i 4+5*i};
B(2,1)={[1 2 3;4 5 6;7 8 9]};
B(2,2)={'Tim','Chris'};
B
结果在运行的时候出现这样的错误提示:赋值具有的非单一 rhs 维度多于非单一下标数。
随后就去一条一条语句执行。
B(1,1)没问题;
B(1,2)运行的时候出现:赋值具有的非单一 rhs 维度多于非单一下标数。加了中括号改为B(1,2)={[5+6*i 4+5*i]}以后能够正常运行了。
B(2,1)运行没问题,为了与B(1,2)做个对比,将中括号去掉,即写成B(2,1)={1 2 3;4 5 6;7 8 9}的形式,出现了同样的错误提示。
由此得到,对于元胞数组,如果想将其中某一元素输入为数值矩阵(包括复数),需要加中括号,满足基本的矩阵格式。
B(2,2)={'Tim','Chris'};也有同样的问题,将其改为B(2,2)={'Tim Chris'}以后,能够正常运行了。
所以,上面的语句也就变成了下面的形式:
B(1,1)={'This is the first cell'};
B(1,2)={[5+6*i 4+5*i]};
B(2,1)={[1 2 3;4 5 6;7 8 9]};
B(2,2)={'Tim Chris'};
B
输出结果为:
B =
'This is the first cell' [1x2 double]
[3x3 double] 'Tim Chris'