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