MATLAB 如何将函数应用于元胞数组
MATLAB how to apply a function to cell arrays
我有以下元胞数组:
<20x2>
<32x2>
<28x2>
<30x2>
我想做的是读入 <20x2>
元胞数组的 row 1
,一旦进入 <20x2>
,我想将以下函数应用于仅第一列。
在第一个中,我希望 C{1,1}
中的 column 1
的每一行都减去 0.1。在第二个 C{2,1}
(<32x2>
) 中,我希望第 1 列的每一行都减去 0.2,依此类推...
所以为了澄清,我试图从 n= row number of the cell array
所在的元胞数组中每个子矩阵的第一列中减去 n*0.1
。因此,如果 row 8
中的元胞数组中有一个部分,column 1
将减去 8*0.1 = 0.8
我希望这个问题足够清楚,我已经尽量把它说清楚了。
提前感谢任何help/suggestions
尝试
First = C{1,1}(:,1);
Subtraction = First - 0.1
给出了我想要的结果,但仅限于我的元胞数组的第 1 行。
的独特问题,因为这涉及元胞数组而不是矩阵。读入单元格数组的方面使其成为问题的不同变体,因此如果有人遇到与此问题类似的问题,提到的 'duplicate' 问题将无济于事,尤其是像我这样的 MATLAB 知识很少
很容易使您的尝试适应循环:
for n = 1:size(c,1)
C{n,1}(:,1) = C{n,1}(:,1) - n*0.1;
end
我有以下元胞数组:
<20x2>
<32x2>
<28x2>
<30x2>
我想做的是读入 <20x2>
元胞数组的 row 1
,一旦进入 <20x2>
,我想将以下函数应用于仅第一列。
在第一个中,我希望 C{1,1}
中的 column 1
的每一行都减去 0.1。在第二个 C{2,1}
(<32x2>
) 中,我希望第 1 列的每一行都减去 0.2,依此类推...
所以为了澄清,我试图从 n= row number of the cell array
所在的元胞数组中每个子矩阵的第一列中减去 n*0.1
。因此,如果 row 8
中的元胞数组中有一个部分,column 1
将减去 8*0.1 = 0.8
我希望这个问题足够清楚,我已经尽量把它说清楚了。
提前感谢任何help/suggestions
尝试
First = C{1,1}(:,1);
Subtraction = First - 0.1
给出了我想要的结果,但仅限于我的元胞数组的第 1 行。
很容易使您的尝试适应循环:
for n = 1:size(c,1)
C{n,1}(:,1) = C{n,1}(:,1) - n*0.1;
end