循环迭代使用字母,那么它的索引

4视图(30天)
嗨,我想重复循环使用字母然后想用字母数组索引的预定义变量。这样做只是为了缩短的想法相同的代码,而不是编写公式4乘以每个数组,b, c, d。我得到无效索引错误。有人能帮我我想做什么。我会很感激你的帮助。也当我运行这段代码clc,清晰等不工作甚至在多次运行代码。我不知道为什么。这是我写的东西
clc;明确;关闭;
%定义变量
信谊x y z
%写所有的速度矢量
(x * y ^ 2 = 2 * y * x ^ 2, 10];
b = [x ^ 2 + y ^ 2 + z ^ 2, x * y + y * z + z ^ 2, 3 * x * z-z ^ 2/2 + 4);
c = [x * y * z ^ 2, y ^ 2 * * z z * x * y ^ 2];
d = [x ^ 2/2, y ^ 2/2, 3 * z ^ 2);
%确定旋转向量a
%“u”(1),(2)是“v”和(3)是' w '
var =“一个”:' d '
omega_x = (diff (str2sym (var) (3), y)选项(str2sym (var) (2), z)) / 2;
omega_y = (diff (str2sym (var) (1), z)选项(str2sym (var) (3), x)) / 2;
omega_z = (diff (str2sym (var) (2), x)选项(str2sym (var) (1), y)) / 2;
%现在打印ω用向量形式
流(“Omega_ % s = (% s)我+ (% s) j + (% s) k \ n \ n '、var、omega_x omega_y omega_z)
%检查无旋性
如果omega_x = = 0 & & & & omega_z omega_y = = 0 = = 0
disp (流场是无旋的)
结束
结束

接受的答案

沃尔特·罗伯森
沃尔特·罗伯森 2021年9月13日
var = {a, b, c, d};
varidx = 1:长度(var)
var = vars {varidx};
omega_x = (diff (var (3), y)选项(var (2), z)) / 2;
等等
结束
4评论
ajeet sahu
ajeet sahu 2021年9月13日
得到了正确的答案,小修改。需要不同的数组名a, b, c, d。谢谢你的帮助。我接受你的答案。这是完整的代码。
clc;明确;关闭;
%定义变量
信谊x y z
名称= [“一个”,“b”,“c”,' d '];
%写所有的速度矢量
(x * y ^ 2 = 2 * y * x ^ 2, 10];
b = [x ^ 2 + y ^ 2 + z ^ 2, x * y + y * z + z ^ 2, 3 * x * z-z ^ 2/2 + 4);
c = [x * y * z ^ 2, y ^ 2 * * z z * x * y ^ 2];
d = [x ^ 2/2, y ^ 2/2, 3 * z ^ 2);
%确定旋转向量a
%“u”(1),(2)是“v”和(3)是' w '
var = {a, b, c, d};
i = 1:长度(var)
var = vars{我};
omega_x = (diff (var (3), y)选项(var (2), z)) / 2;
omega_y = (diff (var (1), z)选项(var (3), x)) / 2;
omega_z = (diff (var (2), x)选项(var (1), y)) / 2;
%现在打印ω用向量形式
流(“Omega_ % s = (% s)我+ (% s) j + (% s) k \ n \ n '名称(i)、omega_x omega_y omega_z)
%检查无旋性
如果omega_x = = 0 & & & & omega_z omega_y = = 0 = = 0
disp (流场是无旋的)
结束
结束

登录置评。

更多的答案(0)

下载188bet金宝搏


释放

R2021a

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!