【问题标题】:Concatenate two double arrays into a n x 1 cell array using matlab使用 matlab 将两个双精度数组连接成一个 n x 1 单元格数组
【发布时间】:2015-08-12 13:27:49
【问题描述】:

我有一个n x 1 双数组。

A = [1234;
     1235;
     1236;
     1237;
     1238];

和一个双标量。

B = [4567]

我想将这些组合(连接)成一个n x 1 元胞数组,如下所示,

C = [1234 4567;
     1235 4567;
     1236 4567;
     1237 4567;
     1238 4567];

【问题讨论】:

  • C(:,1) = A; C(:,2) = B; C = num2str(C); C = cellstr(C);这行得通,但似乎是一种超级低效的到达方式也许这是最好的解决方案?
  • 你想把数字转换成文本,A的每个元素和B的值之间有一个空格吗?

标签: arrays matlab matrix concatenation cell


【解决方案1】:

试试这个单行:

out = mat2cell([A,repmat(B,numel(A),1)],ones(numel(A),1),2)

示例运行:

A = [1234; 1235; 1236; 1237; 1238];
B = [4567];

结果:

out = 

[1x2 double]
[1x2 double]
[1x2 double]
[1x2 double]
[1x2 double]

如果你想要1xn 单元格,你可以转置输出

out = out.'      %//'

out = 

[1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]    [1x2 double]

【讨论】:

  • 我希望它是一个 1 x n 元胞数组,以便我可以使用 ismember 函数与另一个串联的双精度元胞数组进行比较。如果添加任何上下文,我拥有的双打是日期数字。
  • @AndyUngerman 如果是 1xn 单元阵列,您的 C 会是什么?对于同样的问题
  • whos C 名称大小字节类属性 C 5x1 32900 单元格
  • >> C C = '1234 4567' '1235 4567' '1236 4567' '1237 4567' '1238 4567'
  • @AndyUngerman 这不是你想要的吗?我的给出了确切的结果
猜你喜欢
  • 2021-05-19
  • 1970-01-01
  • 2014-07-17
  • 1970-01-01
  • 2020-05-24
  • 2021-09-20
  • 1970-01-01
  • 2017-06-08
  • 2011-06-19
相关资源
最近更新 更多