2014-03-05 50 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