我是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 :(得分: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
。它只是在每个领域运作。