我如何把结果从一个while循环在一个矩阵?

8次浏览(最近30天)
Kaicheng锅
Kaicheng锅 2020年5月14日
评论道: Kaicheng锅2020年5月14日
基本上我是在用试错法解一个方程。这是代码
清楚,clc;
信谊x y
a1 = 13.7819;b1 = 2726.81;c1 = 217.512;
a2 = 13.9726;b2 = 3259.93;c2 = 212.3;
x = 0:10
t = 70;
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
abs (p - 90) > 5
t = t + 1;
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
结束
t (x + 1) = t
结束
我想把每个for循环的t放到一个矩阵中,但是Matlab给出了这个
t = 131
t = 119 119
t = 111 0 111
T =103 0 0 103和等等
我不知道为什么!请帮助

接受的答案

杰夫•海斯
杰夫•海斯 2020年5月14日
开诚-你也许可以去掉这条线
信谊x y
因为我看不到 y 在代码中使用,和 x 被循环步长变量覆盖。问题是你正在治疗 t 好像它是一个数组(在一行代码中),然后是一个标量(在另一行代码中)
x = 0:10
t = 70;% <----这里t是一个标量,在每次迭代时都会被重置
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
abs (p - 90) > 5
t = t + 1;
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
结束
t (x + 1) = t这里的% <----是一个数组
结束
尝试为你的t值创建一个数组:
tArray = 0(11日1);
x = 0:10
t = 70;
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
abs (p - 90) > 5
t = t + 1;
psat1 = exp (a1b1 / (t + c1));
psat2 = exp (a2b2 / (t + c2));
p = 0.1 * x * psat1 + 0.1 * (1 - x) * psat2;
结束
tArray (x + 1) = t;
结束
我猜你是想重置 t 到70。这是正确的吗?
1评论
Kaicheng锅
Kaicheng锅 2020年5月14日
非常感谢!它完美地解决了我的问题。我应该使用一个新数组来放入t值。

登录评论。

更多的答案(0)

下载188bet金宝搏


释放

R2020a

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!