如何在Matlab中连接单元数组中的数组

时间:2014-03-05 18:17:18

标签: arrays matlab cell-array

我是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);

但我想应该有更好的方法或直接的函数调用,这可以得到与我从显示的代码中获得的结果相同的结果?

1 个答案:

答案 0 :(得分:1)

这是一项非常具体的任务,不是很一般,除非我错过了模式。从struct2cell开始:

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

尽管如果您将上面的structfun替换为cellfun,并将structfun作为输入,您可能会摆脱最初的s。它只是在每个领域运作。