2015-09-25 58 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