2014-03-05 47 views
0

我是Matlab新手,試圖從單元陣列連接數組。我做了如下所示。如何在Matlab中連接單元陣列中的數組

S = load('input_file.mat'); 
c = struct2cell(S); 
v = cell2mat(c(1,1)); 
temp = v(1:500,1:600); 

v = cell2mat(c(3,1)); 
temp1 = v(1:500,1:600); 

v = cell2mat(c(2,1)); 
temp2 = v(1:500,1:600); 

v = cell2mat(c(4,1)); 
temp3 = v(1:500,1:600); 

array1 = vertcat(temp,temp1); 
array2 = vertcat(temp2,temp3); 

,但我想應該有更好的方式或直接函數調用,可以讓我同樣的結果,因爲我從代碼所示得到些什麼?

+0

你能否給出一個包含所有變量的小例子? –

+0

所有變量都是整數 – SPB

回答

1

這是一個非常具體的任務,不是很一般,除非我錯過了這個模式。 struct2cell後開始:

C3 = cellfun(@(x)x(1:500,1:600),c,'uni',0); 
array1 = vertcat(C3{[1 3]}); 
array2 = vertcat(C3{[2 4]}); 

雖然,你也許可以擺脫你的初始structfun的,如果你有structfun替換cellfun以上,以s作爲輸入。它只是在每個領域進行操作。

+0

謝謝..它的工作。 – SPB