【问题标题】:How to concatenate arrays from cell arrays in Matlab如何在 Matlab 中连接单元格数组中的数组
【发布时间】:2014-03-05 18:17:17
【问题描述】:

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

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

【问题讨论】:

  • 你能举一个包含所有变量的小例子吗?
  • 所有变量都是整数
  • 你帮我找到了horzcat和vertcat

标签: arrays matlab cell-array


【解决方案1】:

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

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

不过,如果您将上面的cellfun 替换为structfun,您可能会摆脱最初的structfun,将s 作为输入。它只是对每个字段进行操作。

【讨论】:

    猜你喜欢
    • 2012-10-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    相关资源
    最近更新 更多