youf 发表于 2010-9-17 11:12:01

求一行matlab命令的简写形式

已知6个方程,求6个未知数,且6个方程构成一个矩阵,未知数每3个构成一个矩阵。
一般的写法为:

y1=sym('');
y2=sym('');
eq=sym('');

V=solve(eq(1),eq(2),eq(3),eq(4),eq(5),eq(6),y1(1),y1(2),y1(3),y2(1),y2(2),y2(3));

如果方程很多,未知数很多,那么上面的写法就很不现实了。

求最后一行,也就是 V=solve(eq(1),eq(2),eq(3),eq(4),eq(5),eq(6),y1(1),y1(2),y1(3),y2(1),y2(2),y2(3));
的简写形式。

谢谢了!!

qibbxxt 发表于 2010-9-17 11:28:58

clear;clc;close all
P='V=solve(';
nEq=6;
ny1=2;
ny2=3;
for i=1:nEq+ny1
    if i<=nEq
    P=;
    else
      for j=1:ny1
            for k=1:ny2
                P=;
            end
      end
    end
end
P(end)=')';
eval(P);>> P

P =

V=solve(eq(1),eq(2),eq(3),eq(4),eq(5),eq(6),y1(1),y1(2),y1(3),y2(1),y2(2),y2(3),y1(1),y1(2),y1(3),y2(1),y2(2),y2(3))

youf 发表于 2010-9-17 12:14:59

多谢qibbxxt,为了达到原来的要求,我对您的代码稍作了修改(只是变了几个很小的地方),如下:
clear all;
P='V=solve(';
nEq=6;
ny1=1;
ny2=3;
nn=2;
for i=1:nEq+ny1
    if i<=nEq
    P=;
    else
      for j=1:nn
            for k=1:ny2
                P=;
            end
      end
    end
end
P(end)=')';

>> P

P =

V=solve(eq(1),eq(2),eq(3),eq(4),eq(5),eq(6),y1(1),y1(2),y1(3),y2(1),y2(2),y2(3))
qibbxxt的编程思想与方法,我都好好学习了,谢谢qibbxxt。
祝SimWe越办越好,祝Matlab版越办越好!
页: [1]
查看完整版本: 求一行matlab命令的简写形式