还是不对啊错误使用 - Array sizes must match. 出错 untitled3 (第 55 行) -aerfa*(beita*m*(ee*p-huibig*Pf)*(i0+d)/p/(-fai*theta-(w1-w2)*ee-log(n)+i0*beita+d*beita)...
时间: 2023-07-23 11:10:16 浏览: 263
matlab.zip_3*3平均去噪_site:www.pudn.com_均值滤波7*7
这个错误是因为数组 `ee` 和 `p` 的大小不匹配导致的。在第55行中,你使用了 `ee` 和 `p` 两个数组进行运算,但是它们的大小不一致,导致出现了这个错误。
要解决这个问题,需要确保 `ee` 和 `p` 的大小是一致的。可以在循环中将 `ee` 和 `p` 当作变量进行计算,而不是定义为数组。具体地,将第53行和第54行修改为:
```
ee = double(sol(sol>0)); % 找到正根
disp(ee);
for i = 1:doc
result_p(i) = P0;
p = P0;
eqn = (-fai*theta-(w1-w2)*ee-log(n))/beita+i0-dp/p...
-aerfa*(beita*m*(ee*p-huibig*Pf)*(i0+d)/p/(-fai*theta-(w1-w2)*ee-log(n)+i0*beita+d*beita)...
/(kc-huibig)/Pf)^((aerfa-1)/aerfa)==0;
temp_dp = solve(eqn,dp);
temp_dp = double(min(real(temp_dp)));
dp1(i) = temp_dp;
P0 = P0 + temp_dp*dt;
ee = ee + (E-p*ee)*dt/miu; % 更新 ee
disp(["计算中...",string(i/doc*100)," %"]);
end
```
这样修改后,`ee` 和 `p` 都被当作变量进行计算,不再是数组,就不存在大小不匹配的问题了。另外,我还添加了一个更新 `ee` 的语句,以便在每次循环中更新 `ee` 的值。
希望这次能够帮到您。
阅读全文