MATLAB中通过循环实现列向量的串接

MATLAB中通过循环实现列向量的串接,matlab,concatenation,Matlab,Concatenation,我想通过MATLAB将excel表格中的列向量连接在一起。我有以下代码: g1 = cell2mat(rmse_h1); c1 = g1'; g2 = cell2mat(rmse_h2); c2 = g2'; g3 = cell2mat(rmse_h3); c3 = g3'; 这里,rmse_h1、rmse_h2和rmse_h3是3个不同的行向量,每个行向量中有16个值。我通过转置,比如c1,c2,c3,将这个行向量转换成列向量 现在我的问题是,我想将c1、c2和c3连

我想通过MATLAB将excel表格中的列向量连接在一起。我有以下代码:

  g1 = cell2mat(rmse_h1);
  c1 = g1';
  g2 = cell2mat(rmse_h2);
  c2 = g2';
  g3 = cell2mat(rmse_h3);
  c3 = g3';
这里,rmse_h1、rmse_h2和rmse_h3是3个不同的行向量,每个行向量中有16个值。我通过转置,比如c1,c2,c3,将这个行向量转换成列向量

现在我的问题是,我想将c1、c2和c3连接在excel工作表的一列中,如下所示: c2归c1,c3归c2


我想对总共10个不同的行向量执行此操作。我想在MATLAB中使用for循环,我该怎么做??有人能帮我吗?谢谢

连接很容易,因为
[c1;c2;c3]

正如其他人提到的,使用单元阵列将是一个好主意。然后使用
vertcat
完成作业

我的解决方案是使用
struct
更好地管理数据

假设您有未定义数量的变量
g1、g2、g3…g99
所以在转换之后,你得到了
c1=g1'
(或者简单地说
c1=g1(:)
),诸如此类。。。 这里的最佳实践是使用
struct
数据类型

首先,我将定义一个结构变量来存储导入的excel数据

C = [];
n = 100; % Number of sheets. Let's assume you know this.
for idx = 1:n
    fileds = sprintf('rmse_h%d',idx);
    d.(field) = readtable(filename, FileType','spreadsheet' ,'Sheet','1);  
    C = [C ; table2array(d.(field))];
end

现在,如果您想以其他方式格式化数据,可以在
d
中循环每个字段

你有10个这样的向量。你要转换成10个这样的
g
向量,然后再转换成10个这样的
c
向量,然后你想把它们组合成一个。不可以。请修改任何代码,不要创建动态变量。我有一个非常大的代码,我在这里使用的只是一个小代码。我可以简化我的问题,如果有10个不同的列向量,我如何使用for循环将它们彼此连接在一起,并将它们写入excel sheetUse单元格数组中的单个列,
g{1}
而不是一个新变量
g1
等。。。然后连接就像
vertcat(g{:})
一样简单。。。阅读有关创建的内容,如果问题的这一部分与Excel无关,则将问题的范围专门限制在串联或变量处理上。@AhmadBilla如何生成
rmse\u h*
数据?正如我在下面的评论中提到的,如果可能的话,重新构造代码以便将这些变量分组到某种数组中会容易得多。对我来说,
d.rmse_h1
并不比
rmse_h1
好多少。首先,结构中的字段意味着异构数据(即使数据类型相同)。由于OP组合了所有
rmse_h*
实例,因此它们必须是同构的。这也使得迭代数据实例变得不容易。使用structs的一个稍好的方法是将数据存储在struct数组中,如
rmse_h(i).data
。虽然在我看来,这仍然使错误的想法永久化,即相同数据的不同实例需要不同的变量,但这至少使访问数据变得更容易。我们也不知道OP是从excel文件读取的。他们的代码做的第一件事是将单元格数组转换为矩阵,因此可以合理地假设
rmse_h1
以单元格数组开始,而不是表或矩阵(分别由
readtable
xlsread
返回)。如果这些单元数组变量被生成为
rmse_h{1}
rmse_h{2}
rmse_h{3}
而不是
rmse_h1
rmse_h2
rmse_h3
,那么对所有数据进行迭代或将是一件小事,例如
C=horzcat(rmse_h:}).
。尊重你的意见。我的解决方案只是指出了一种可能适合某种数据管理视角的思想。OP确实提到了Excel表格。在我看来,从excel或表格格式导入的数据很容易使用
table
struct
,或者两者都可以,具体取决于具体情况。在数据处理的情况下,我会想到
表格
,或
单元格
;否则,如果导入的数据需要保留一些元信息,
struct
可能是一个很好的解决方案,因为它具有多种用途。@Bicker我认为我的解决方案不坏,它可能适合OP的需要。我相信我们都同意OP没有很好地提出这个问题。所以我不认为我们必须从这一点开始讨论。我还建议你写下一个解决方案和你的解决方案的基本原理,以便OP可以选择你作为最佳答案?