For循环索引问题

3次查看(最近30天)
弗朗西斯证据
弗朗西斯证据 2021年4月1日
你好,
我正在尝试使用一个for循环,以能够更快地创建一个新的矩阵。循环是:
2 = 1:甲;
jj = 1: Nyrs
BMactive(:,jj) = [idact(:), bact (:,jj)];
结束
结束
其中Nco对应的公司编号是749,nrs对应的年数是20,idact是一个749x1矩阵,bact是一个749x20矩阵。
我想要做的是创建20个749x2的矩阵,它是idact的形式和bact的每个冒号,我想不出一个办法来做。
致以最亲切的问候

接受的答案

鲍勃·汤普森
鲍勃·汤普森 2021年4月1日
编辑:鲍勃·汤普森 2021年4月1日
部分问题是,您试图将一个749x2矩阵推入一个大小为749x1的数组(BMactive(:,jj)每次只调用一列)。
至于创建20个矩阵,你真的需要20个矩阵,还是仅仅需要20组信息?创建大量矩阵通常不推荐使用MATLAB,相反,我们通常建议您索引到另一个维度。示例如下:
2 = 1:甲;%循环中有更多内容吗?因为这实际上没有任何作用
%你发布了什么
jj = 1: Nyrs
BMactive(:,:,jj) = [idact(:), bact (:,jj)];调整后的BMactive指数
结束
结束
实现的简单更改应该将BMactive更改为749x2x20的大小,其中每个“sheet”是您想要放入一个单独的数组中的749x2数组。如果您需要特别调用它,只需索引到所需的工作表。
如果这根本不能解决你的问题,请多解释一下,因为我显然不明白。
1评论
弗朗西斯证据
弗朗西斯证据 2021年4月1日
我想在20矩阵中完成它,但有了这个循环,我可以轻松地提取它们,所以它就像一个魅力!是的,我忘记把for ii去掉了。
谢谢你!

登录评论。

更多的答案(0)

标签

s manbetx 845

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!