phebus 发表于 2007-10-12 09:30

数组生成时 Subscripted assignment dimension mismatch 出错

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

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

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的这种写法也不是不对的,产生的是空数组。

phebus 发表于 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,:);

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

phebus 发表于 2007-10-12 10:42

好的谢谢 我再看看

tianwanyin 发表于 2012-5-1 14:25

Subscripted assignment dimension mismatch.

Error in hjgjytu (line 44)
    individuals.chrom(worestindex,:)=bestchrom;
请问一下以上的错误提示如何修改啊。
页: [1]
查看完整版本: 数组生成时 Subscripted assignment dimension mismatch 出错