无法执行赋值,因为左侧和右侧具有不同数量的元素。

6个视图(过去30天)
Alireza Kakoee
Alireza Kakoee 2020年5月14日
评论: 杰苏普2020年5月14日
亲爱的朋友们
我有一个代码,其中一部分有错误:
对于k = 1:4
对于J = 1:3
因为i=1:41
dTdt(k,j,i,:)=diff(T(k,j,i,:,2))/diff(T(k,j,i,:,1));
%[val,Idx] = max(dtdt(i,1,:))
idx=find(dtdtdt(k,j,i,:)>0,1,'first')
DT(k,j,i)= t(k,j,i,Idx,1)
T(k,j,i,idx,1)
终止
终止
终止
"
无法执行分配,因为左侧的索引与右侧的大小不兼容。
1219ZD中的错误(第28行)
DT(k,j,i)= t(k,j,i,Idx,1)
"
13评论
杰苏普
杰苏普 2020年5月14日
您可以尝试保存您的工作并清除您的工作区。您可能在以前的运行中设置了idx
这是我所看到的:
装载(“~/Downloads/Temp.mat”);
i = 1; j = 1; k = 1;
任何(~isnan((diff(T(k,j,i,:,2))。/diff(T(k,j,i,:,1)))% = 0
这意味着在循环的第一步dTdt(k,j,i,:)的所有值都不是数字/不确定的。
除了(j=1和i=1)之外,代码似乎运行正常。看起来有几个区域的T(1,1,:,:,:,:,:)的所有值都为零。这会导致被零除的问题并返回NaN。。
您可以将循环设置为“for k=2:4;for j=1:3”或“for k=1:4;for j=2:3”,通过跳过几行数据来避免这种情况。或者您可以修复数据。或者您可以在代码中添加异常处理。

登录以发表评论。

答案(0)

社区寻宝

在MATLAB Central中查找宝藏,了解社区如何帮助您!

开始狩猎!