【发布时间】:2014-03-20 06:50:33
【问题描述】:
问题:求解线性方程组
我有一个 3×3 矩阵,我想将 3 个表达式作为输入,其中包含像
这样的矩阵单元2*b(1,1)+3*b(1,2)+3*b(1,3)
3*b(2,1)+4*b(2,3)+3*b(2,3)
并用矩阵中不同的单元格值评估它们
0 1 0
1 0 0
1 0 0
0 1 0
0 1 0
1 0 0 etc.,
我使用了以下代码,我得到了结果,但我只能使用单元格值。当我尝试用数字给出表达式时,它显示以下错误:
*警告:文件:pro.m 行:5 列:9 此行的表达式在执行时会产生错误。错误将是:错误使用 ==> vertcat CAT 参数尺寸不一致。
???在 5 处使用 ==> pro 时出错 使用 ==> vertcat CAT 参数时出错,尺寸不一致。*
这是我的代码:
clc;
clear all;
close all;
cell = ['b(1,1)+b(1,2)';'b(2,1)+b(2 ,3)';'b(3,3)+b(3,2)'];
exp = cellstr(cell);
res = [0,0,0];
display(res);
display(exp);
a = zeros(3,3);
for i = 1:1:3
a(1,i) = 1;
if(i>1)
a(1,i-1) = 0;
end
for j = 1:1:3
a(2,j) = 1;
if(j>1)
a(2,j-1) = 0;
end
for k = 1:1:3
a(3,k) = 1;
if(k>1)
a(3,k-1) = 0;
end
b = a;
res(k) = eval(exp{k});
if res(1) == 1
if res(2) == 1
if res(3) == 1
display(res);
display(b);
break;
end
end
end
end
a(3,k)=0;
end
a(2,j) = 0;
end
;
帮助我如何输入带有数字和矩阵单元的字符串...
【问题讨论】:
-
不是要侮辱你,但那是你那里的一些非常糟糕的代码......你能忽略实现和你遇到的问题,并在编辑中解释你的最终目标是什么?我怀疑您可以在 5 行代码中实现该目标...
-
是的!那是我的代码的初始阶段,以检查我的逻辑是否正确。后来我递归地实现了它并使它变短了。
标签: arrays string matlab input numerical