2015-09-25 28 views
-3

我有以下的单元阵列:MATLAB如何将功能应用到电池阵列

<20x2> 
<32x2> 
<28x2> 
<30x2> 

我所试图做的是读入单元阵列是<20x2>row 1有一次我在<20x2>我只想将以下函数应用于第一列。

在第一个我希望column 1的每一行C{1,1}减去0.1。在第二个C{2,1}<32x2>)我想第1列中的每一行由0.2减去等等...

所以要澄清我试图从每个子矩阵的单元格中的第一列减去n*0.1数组在哪里n= row number of the cell array。所以,如果在row 8有单元阵列中的一个部分,column 1将由8*0.1 = 0.8

减去我希望这个问题是清楚不过了,我试图字,例如干净的,我可以。

预先感谢任何帮助/建议

尝试

First = C{1,1}(:,1); 
Subtraction = First - 0.1 

给我我想要的结果,但只为我的单元阵列的第1行。

独特问题Applying function to vectors row by row因为这涉及,而不是基体中的单元阵列。读入单元阵列方面使得不同变种的问题,所以如果有人在有类似的问题对这个问题所提到的“重复”的问题不会有所帮助,尤其是小MATLAB知识像我这样的

+1

您尝试过什么吗?也许使用循环? – Dan

+0

我可以做什么,我问,如果我只是有一个NX2矩阵而是奋力读入一个单元阵列,其中n改变 – user3536870

+0

您需要发布一些代码,说明你已尝试自己解决问题...为什么你能去'...- n * 0.1; ...'其中'n'是你的'for循环变量? – Dan

回答

1

这是非常容易适应您的循环尝试:

for n = 1:size(c,1) 
    C{n,1}(:,1) = C{n,1}(:,1) - n*0.1; 
end