声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 11189|回复: 5

[编程技巧] 数组生成时 Subscripted assignment dimension mismatch 出错

[复制链接]
发表于 2007-10-12 09:30 | 显示全部楼层 |阅读模式

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

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

x
Temperw1(:,1:10,1:10,:)=Tempergrf(:,11:2,11:2,:);
为什么提示的错误是 Subscripted assignment dimension mismatch.下标分配维数不匹配  
要是怎么才能实现上面的语句要表达的意思

备“:
size(Temper)=121,21,21,41;size(Tempergrf)=[121,11,11,41];

Tempergrf是一立方体1/4对称块的温度按时间变化的数组 时间步长为121
后面3维是表示空间位置的 现在需要将1/4立方体扩充到整体
所以进行上面的数组操作

我用循环使Temperw1(:,1:10,1:10,:)=Tempergrf(:,11:2,11:2,:);这个赋值过程可以完成
但是在语句Temper(:,11:21,11:21,:)=Tempergrf(:,1:11,1:11,:); 完成后再实施
Temper(:,1:10,1:10:21,:)=Temper1(:,1:10,1:10,:); 结果是Temper的第二维前10都是0与Temper1并不相等

[ 本帖最后由 eight 于 2007-10-12 16:30 编辑 ]
回复
分享到:

使用道具 举报

发表于 2007-10-12 09:36 | 显示全部楼层
错误已经很明显,而且11:2的这种写法也不是不对的,产生的是空数组。
 楼主| 发表于 2007-10-12 10:08 | 显示全部楼层
那我用循环
for i=1:10
for j=1:10
Temper1(:,i,j,:)=Tempergrf(:,12-i,12-j,:);
end
end
得到的正确数组后再赋值给Temper(:,1:10,1:10,:) 同样还是会出现很多0元素 那又是为什么呢
发表于 2007-10-12 10:11 | 显示全部楼层

回复 #3 phebus 的帖子

和循环无关呀,是你:运算符用法不对。试试下面的
Temperw1(:,1:10,1:10,:)=Tempergrf(:,11:-1:2,11:-1:2,:);

另:编程之前先看看基本的语法,维数不匹配的问题版面有解决办法

评分

1

查看全部评分

 楼主| 发表于 2007-10-12 10:42 | 显示全部楼层
好的谢谢 我再看看
发表于 2012-5-1 14:25 | 显示全部楼层
Subscripted assignment dimension mismatch.

Error in hjgjytu (line 44)
    individuals.chrom(worestindex,:)=bestchrom;
请问一下以上的错误提示如何修改啊。
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-29 03:01 , Processed in 0.065828 second(s), 20 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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