请教生成高维问题
比如我有个一维数组k1,k2,...kn,我想生成一个三维数组M(1,:,:)均为k1,M(2,:,:)均为k2,即for kk = 1:n
for ii = 1:M,
for jj = 1:M,
M(kk,ii,jj) = k(kk);
end
end
end
请教是否有快速实现上述语句的命令?谢谢。
回复
如果k已知, help reshape.(没看清楚前面的说明,以为是一维数组变成三维.
楼下正解,但要稍改一下)
%%%%%%%%%%%%%%
Mk=zeros(n,M,M);
for i=1:n
Mk(i,:,:)=k(i);
end
%%%%%%%%%%%%%%
[ 本帖最后由 xjzuo 于 2006-12-21 10:59 编辑 ] 楼主循环jj,ii的循环变量的终止是不是写错了,和矩阵的M(I,J,K)重名了?
我假设就是 MAX了,
M=zeros(n,MAX,MAX);
for i=1:n
M(I,:,:)=ki;
end
这样预先申请内存空间,而且循环的次数就少了点。
对reshape函数不是很熟悉,所以就斗胆些了自己的拙见了
[ 本帖最后由 ChaChing 于 2009-3-7 18:54 编辑 ]
页:
[1]