matlab用sym定义矩阵

初学者哎,自学,问题一堆啊
这是命令:
sym_matrix=sym('[a b c;jack,help me!,no way!],')
然后这是错误提示(有点长):
??? Error using ==> sym.sym>convertExpression at 2515
Error: 'expression' expected [line 1, col 41]

Error in ==> sym.sym>convertChar at 2426
s = convertExpression(x);

Error in ==> sym.sym>convertCharWithOption at 2410
s = convertChar(x);

Error in ==> sym.sym>tomupad at 2164
S = convertCharWithOption(x,a);

Error in ==> sym.sym>sym.sym at 111
S.s = tomupad(x,'');
郁闷了,书上这么说的啊,难道我哪里错了

1 6 5 2];
min=min(A);
max=max(A);
%m为所在行 n为所在列
[m1,n1]=find(A==min);
[m2,n2]=find(A==max);

=====================================
附赠:
在MATLAB中输入符号向量或者矩阵的方法和输入数值类型的向量或者矩阵在形式上很相像,只不过要用到符号矩阵定义函数sym,或者是用到符号定义函数syms,先定义一些必要的符号变量,再像定义普通矩阵一样输入符号矩阵。
1.用命令sym定义矩阵:
这时的函数sym实际是在定义一个符号表达式,这时的符号矩阵中的元素可以是任何的符号或者是表达式,而且长度没有限制,只是将方括号置于用于创建符号表达式的单引号中。如下例:
例1-3
>> sym_matrix = sym('[a b c;Jack,Help Me!,NO WAY!],')
sym_matrix =
[a b c]
[Jack Help Me! NO WAY!]
>> sym_digits = sym('[1 2 3;a b c;sin(x)cos(y)tan(z)]')
sym_digits =
[1 2 3]
[a b c]
[sin(x)cos(y)tan(z)]
2.用命令syms定义矩阵
先定义矩阵中的每一个元素为一个符号变量,而后像普通矩阵一样输入符号矩阵。
例1-4
>> syms a b c ;
>> M1 = sym('Classical');
>> M2 = sym(' Jazz');
>> M3 = sym('Blues')
>> syms_matrix = [a b c; M1, M2, M3;int2str([2 3 5])]
syms_matrix =
[ a b c]
[Classical Jazz Blues]
[ 2 3 5]
把数值矩阵转化成相应的符号矩阵。
数值型和符号型在MATLAB中是不相同的,它们之间不能直接进行转化。MATLAB提供了一个将数值型转化成符号型的命令,即sym。
例1-5
>> Digit_Matrix = [1/3 sqrt(2) 3.4234;exp(0.23) log(29) 23^(-11.23)]
>> Syms_Matrix = sym(Digit_Matrix)
结果是:
Digit_Matrix =
0.3333 1.4142 3.4234
1.2586 3.3673 0.0000
Syms_Matrix =
[ 1/3, sqrt(2), 17117/5000]
[5668230535726899*2^(-52),7582476122586655*2^(-51),5174709270083729*2^(-103)]
注意:矩阵是用分数形式还是浮点形式表示的,将矩阵转化成符号矩阵后,都将以最接近原值的有理数形式表示或者是函数形式表示。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-06-06
呵呵 你的命令里面多了一个逗号
>> sym_matrix=sym('[a b c;jack,help me!,no way!]')

sym_matrix =

[ a, b, c, 0, 0]
[ jack, help, factorial(me), no, factorial(way)]本回答被提问者采纳