使用条件和for循环条件时出现错误。我得到的值只有0。但我想要值,这里A是次对角线,B是对角线,C是超对角线。

34次观看(过去30天)
xmax = 1;ymax = 20;达峰时间= 100;dx = 0.05;dy = 0.25;dt = 0.2;t = 0; m = xmax / dx;n = ymax / dy;n = ymax / dy;UWALL = 0; UOLD=zeros(m,n);VWALL=0;VOLD=zeros(m,n);
j = 1: n
如果 我= = 2:m
C (i) = V (i, j) * dt / 4 * dy / dt / 2 * (dy) ^ 2;
elseif 我= = 1:m - 1
(我)= - v (i, j) * dt / 4 * dy / dt / 2 * (dy) ^ 2;
elseif 我= = 1:m
B (i) = 1 + U (i, j) * dt / 2 * dx + dt / (dy) ^ 2;
结束
结束
T(:,j) = tridiag(A,B,C,D);

答案(1)

Atsushi上野
Atsushi上野 2022年12月24日6:03
if语句的内部永远不会被执行,即使i取任何值。
I = 3;
如果I == 2:5
disp (“真正的”);
结束
I == 2:5
ans =1×4逻辑阵列
0 1 0 0
如果[0 1 0 0]
disp (“真正的”);
其他的
disp (“假”);
结束
如果[1 1 1 1]
disp (“真正的”);
其他的
disp (“假”);
结束
真正的

类别

了解更多循环和条件语句帮助中心而且文件交换

世界杯预选赛小组名单社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!世界杯预选赛小组名单

开始狩猎!

Baidu
map