假设我有一个4x1
单元阵列,A
,内每个小区是一个2x5
矩阵,在Matlab添加一个常数的矩阵的指定列的单元阵列
A={[1 1 1 1 1; 2 2 2 2 2];
[3 3 3 3 3; 4 4 4 4 4];
[5 5 5 5 5; 6 6 6 6 6];
[7 7 7 7 7; 8 8 8 8 8]}
我想是添加一个常数,比如说100
,对应于每个单元格的4th
列,以制作B
。例如
B={[ 1 1 1 101 1; 2 2 2 102 2];
[3 3 3 103 3; 4 4 4 104 4];
[5 5 5 105 5; 6 6 6 106 6];
[7 7 7 107 7; 8 8 8 108 8]}
这样做的最佳方法是什么?
我可以用
B=cellfun(@(x) x(:,4)+100,A,'uni',0)
得到相加的结果,但有难以得到B.任何帮助是极大的赞赏。
@ EitanT,感谢您的快速回复,如果每个单元格内矩阵的长度(行数)不同,你会提出什么建议? – tytamu 2013-03-09 22:37:22
@ Tai-YenChen正如我在答案中已经提到的那样,使用'for'循环。它不像你所期望的那样缓慢...... :) – 2013-03-09 22:39:18
@ EithanT,在我的帖子XD之前,我没有在答案中看到有关for循环的信息。再次感谢。 – tytamu 2013-03-09 22:43:14