声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 999|回复: 2

[编程技巧] 请教生成高维问题

[复制链接]
发表于 2006-12-20 17:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
比如我有个一维数组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

请教是否有快速实现上述语句的命令?谢谢。
回复
分享到:

使用道具 举报

发表于 2006-12-20 21:18 | 显示全部楼层

回复

如果k已知, help reshape.
(没看清楚前面的说明,以为是一维数组变成三维.
楼下正解,但要稍改一下)
%%%%%%%%%%%%%%
Mk=zeros(n,M,M);
for i=1:n
    Mk(i,:,:)=k(i);
end
%%%%%%%%%%%%%%

[ 本帖最后由 xjzuo 于 2006-12-21 10:59 编辑 ]
发表于 2006-12-21 09:40 | 显示全部楼层
楼主循环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

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-9-24 21:24 , Processed in 0.051930 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表