如何从两张表生成单元格数组?

问题描述 投票:0回答:1

如何从两个独立的表格中生成一个单元格阵列?

我有一个来自Excel的数据集,包括 数字 这看起来像这样。

A1 A3 A5 A7 A9
A2 A4 A6 A8 A0

B1 B3 B5 B7 B9
B2 B4 B6 B8 B0

其中A7或B0只是数字的替身。

我可以将它们作为单独的 "表 "变量导入表格,但最终我想创建一个单元格数组,就像这样。

[A1,B1] [A3,B3] [A5,B5] [A7,B7] [A9,B9]
[A2,B2] [A4,B4] [A6,B6] [A8,B8] [A0,B0]

我该怎么做才好呢 谢谢

matlab
1个回答
1
投票

你可以将表格转换为数组,然后用以下方法将它们压缩在一起 arrayfun:

% Here's your example tables:
a = reshape(1:10, [2 5]);
b = reshape(11:20, [2 5]);
ta = array2table(a);
tb = array2table(b);

% Convert them to arrays:
a1 = table2array(ta);
b1 = table2array(tb);

% Zip them together with arrayfun:
c = arrayfun(@(x,y) {[x,y]}, a1, b1)

或者更简洁的说,跳过table2array这一步。

c = arrayfun(@(x,y) {[x,y]}, ta.Variables, tb.Variables);

结果:

>> c = arrayfun(@(x,y) {[x,y]}, a1, b1)
c =
  2×5 cell array
    {1×2 double}    {1×2 double}    {1×2 double}    {1×2 double}    {1×2 double}
    {1×2 double}    {1×2 double}    {1×2 double}    {1×2 double}    {1×2 double}
© www.soinside.com 2019 - 2024. All rights reserved.