matlab使用for循环创建增长矩阵,每个循环增长3

matlab使用for循环创建增长矩阵,每个循环增长3,matlab,loops,for-loop,matrix,Matlab,Loops,For Loop,Matrix,所以我写了这个: HSRXdistpR = squeeze(comDatape_m1(2,7,1,:,isubj)); HSRXdistpL = squeeze(comDatape_m1(2,4,1,:,isubj)); TocomXdistp = squeeze(comDatape_m1(2,10,1,:,isubj)); for i = 1:2; HSRXp = NaN(8,3*i); HSRXp(:,i*3) = [HSRXdistpR(:,i) HSRXdistpL

所以我写了这个:

HSRXdistpR = squeeze(comDatape_m1(2,7,1,:,isubj));
HSRXdistpL = squeeze(comDatape_m1(2,4,1,:,isubj));
TocomXdistp = squeeze(comDatape_m1(2,10,1,:,isubj));

for i = 1:2;
     HSRXp = NaN(8,3*i);
     HSRXp(:,i*3) = [HSRXdistpR(:,i) HSRXdistpL(:,i) TocomXdistp(:,i)];
end
在第一部分中,我只是从一个5-D矩阵中选择数据,没有什么特别的。这里最重要的是,它每行创建一个8x2矩阵(isubj=2)。现在,我想将每个矩阵的第一列添加到8x3矩阵中,然后将每个矩阵的第二列添加到同一个矩阵中(创建8x6矩阵)。由于我的主题数量会有所不同,所以我希望以for循环的方式进行此操作。这样,如果isubj增加到3,则应继续创建8x9矩阵

所以我试着创建一个矩阵,在I的每次迭代中增长3,它选择3个矩阵中的第I列,然后将它们放入其中

但是,我得到以下错误:

Subscripted assignment dimension mismatch.
在for循环中,是否可以让矩阵增长一个以上?或者怎么做呢?

这是你的问题:

HSRXp(:,i*3) = [HSRXdistpR(:,i) HSRXdistpL(:,i) TocomXdistp(:,i)];
您正在尝试将nx3矩阵(RHS)分配到nx1向量(LHS)。简单地使用水平连接会更容易:

HSRXp = [HSRXp, [HSRXdistpR(:,i) HSRXdistpL(:,i) TocomXdistp(:,i)]];

但这意味着在每一步都要重新分配,如果矩阵变大,这可能会减慢代码的速度。

这肯定比我一开始做的要好得多,但仍然会出现一个奇怪的事情。首先让我按原样向您展示我的代码:
HSRXp=NaN(8,1);对于i=1:2;HSRXp=[HSRXp,[HSRXdistpR(:,i)HSRXdistpL(:,i)TocomXdistp(:,i)];结束
但现在HSRXp变成了nx7矩阵,而不是nx6,第一列是NaN列。知道是什么原因吗?哎哟!我很笨。我想我知道那里发生了什么:“)发生在我们最好的人身上。