% MATLAB 6.1 实用指南
help elmat
help eye
root=solve('a*x^2+b*x+c=0','x')
% 续行 ...
% LOOKFOR Search all M-files for keyword.
lookfor integral
% pi ,inf无穷大 i(j)复数中的虚数单位
MATLAB的输入与输出语句--------------------------------------------------------------------------------
输入语句
输入数值
?x=input('please input a number:')
please input a number:22
x = 22
输入字符串
?x=input('please input a string:','s')
please input a string:this is a string
x = this is a string
输出语句
输出显示命令
自由格式 (disp)
?disp(23+454-29*4)
361
?disp([11 22 33; 44 55 66; 77 88 99])
11 22 33
44 55 66
77 88 99
?disp('this is a string')
this is a string
格式化输出 (fprintf)。
fprintf('The area is %8.5f\n', area) % 注意输出格式前须有%符号,
%跳行符号须有\符号
The area is 12.56637 % 输出值为8位数含5位小数
在这里你如果学过c语言就能很好的理解了。
错误消息显示命令
?error('this is an error')
??? this is an error
%%%%%%%%%%%%%%% 数组 %%%%%%%%%%%%%%%%%%%%%%%%% 创建数组x=(0:0.5:2) first:increment:last 方法2: linspace(first_value,last_value,number)
% logspace(first_value,last_value,number)
A=[2,5,6,3;1,2,3,4]
B=[-7,9,-2,0;1,1,1,1]
c=A+B
c=c+2
c=c/2
%% 随机数[10,50] to generate a 5-by-5 array of uniformly distributed random numbers on the interval [10,50]
a = 10; b = 50;
x = a + (b-a) * rand(5)
% 求行列式大小 det
a=[1 2 0;2 5 -1; 4 10 -1]
b=det(a)
%求逆及转置
c=inv(a)
b=det(c)
B=C'
%%
A(:,j)is the j-th column of A
A(i,:)is the i-th row of A
A(:,:)is the equivalent two-dimensional array.
For matrices this is the same as A.
A(j:k)is A(j), A(j+1),...,A(k)
A(:,j:k)is A(:,j), A(:,j+1),...,A(:,k)
A(:,:,k)is the kth page of three-dimensional array A.A(i,j,k,:)is a vector in four-dimensional array A. The vector includes A(i,j,k,1), A(i,j,k,2), A(i,j,k,3), and so on.A(:)is all the elements of A, regarded as a single column. On the left side of an assignment statement, A(:) fills A, preserving its shape from before. In this case, the right side must contain the same number of elements as A.
%%%
A = pascal(3);
B = magic(3);
m = 3; n = 3;
for i = 1:m
for j = 1:n
C(i,j) = A(i,:)*B(:,j);
end
end
%矩阵幂运算 ^ 不同于数组的幂运算 .^
A=[1,1,1;1,1,1;1,1,1]
B=A.^2
C=A^2
%单位阵eye(n,m)
a=eye(4,3)
%元素全1矩阵
a=ones(4,3)
%零矩阵 zeros(n,m)
a=zeros(4,3)
%魔方矩阵 magic(n) 随机阵rand(n,m)
magic(4)
%伴随矩阵 compan(A) 注意A为向量,不能是矩阵
u=[1 0 -7 6];
A=compan(u)
%%(x+y)n杨辉三角形表组成的矩阵称为帕斯卡(Pascal)矩阵求(x+y)5系数,对角线值
pascal(6)
% 函数rot90(A,k)将矩阵A旋转90?的k倍,当k为1时可省略
% 求方阵A的逆矩阵可调用函数inv(A)
% 特征值和特征向量的函数是eig(A)
% 有AX=B 则X=?
A=[21,34,20;5 78 20;21 14 17; 34 31 38];
B=[10 20 30 40]';
X=B\A
% diag(A)函数用于提取矩阵A主对角线元素,产生一个具有min(m,n)个元素的列向量。
%%%%%%%%%%%%%% % 多项式运算 %%%%%%%%%%%%%%%%%%%%%%%%%%
T=[2 5 0 4 1 4]
poly2sym(T)
%f=2x^5+5x^4+4x^2+x+4
T=[2 5 0 4 1 4]
r=roots(T)
poly(r)
x=-2.7709
f=2x^5+5x^4+4x^2+x+4
%%
%多项式乘积 C=Conv(a,b) eg. (x+1)(x2+x+3)
a=[0,1,1]
b=[1,1,3]
mul=conv(a,b)
% 多项式除 (s4+7s3+16s2+18s+8)/(s+3)
a=[1,3]
b=[1,7,16,18,8]
[q,r]=deconv(b,a)
%求多项式值:polyval与polyvalm,它们的输入参数均为多项式系数向量P和自变量x。
% 两者的区别在于前者是代数多项式求值,而后者是矩阵多项式求值。
%多项式+ 乘conv(T1,T2);除 [T r]=deconv(t1,t2)
T1=[2 5 0 4 1 4];
T2=[0 0 5 1 3 2];
T=conv(T1,T2);
% 求导 polyder
T1=[2 5 0 4 1 4];
h=polyder(T1);
%多项式求值 求x=[3 4]处的值 h=polyval(T1,[3 4])
T1=[2 5 0 4 1 4];
s=[1,4,5]
h=polyval(T1,s)
%求根 h=roots(T1)
h=roots(T1)
% 求多项式x4+8x3-10的根。命令如下:
A=[1,8,0,0,-10];
X=roots(A)
G=poly(X)
% 若已知多项式的全部根,则可以用poly函数建立起该多项式,其调用格式为:P=poly(x)
% 若x为具有n个元素的向量,则poly(x)建立以x为其根的多项式,且将该多项式的系数赋给向量P。
%多项式的拟合用 [p,s]=polyfit(x,y,n) 最小2乘法
x=linspace(0,2*pi,100);
y=cos(x)
T=polyfit(x,y,6)
y1=polyval(T,x)
plot(x,y,'go',x,y1,'b--')
%%% 关系与逻辑操作符 测试函数 %%%%%%%%
% Eq(A,B) Lt(A,B) Gt(A,B) Le(A,B) Ge(A,B)
% And(A,B) Or(A,B) Not(A) Xor(A,B) Any(A) All(A)
A=[1 0 2 1]
B=[0 0 1 1]
C=And(A,B)
%%%%% 通用数据分析函数 %%%%%%%
% Max Min Mean Median Std Sum Prod求积 hist trapz Sort Sumsum CumProd
a=[1 2 5; 4 5 3]
[y,I]=max(a)
[y,I]=max(a,[],2)
y=[0 1 2]
trapz(y)
% diff 差分 Gradient(F) 梯度
% 对多项式求导数的函数是:
p=polyder(P) %:求多项式P的导函数
p=polyder(P,Q) %:求P·Q的导函数
[p,q]=polyder(P,Q) %:求P/Q的导函数,导函数的分子存入p,分母存入q。
%%%%%%%%%%%%%%%%%%%%%% 符号运算 %%%%%%%
% (1)利用单引号来生成符号表达式。
% (2)用sym函数建立符号表达式。
% (3) 使用已经定义的符号变量组成符号表达式
% syms 符号变量名1 符号变量名2 …
f='a*x^2+bx+c=0'
f=sym('ax+b=0') % sym生成符号表达式
symvar('a*x+y')
diff('x^n') %求导
diff('x^n','n') %对n求导
% 符号基本代数运算 symadd,symsub,symmul,symdiv,sympow
f='4*x+5';
g='2*x^2+5*x+6';
symadd(f,g)
eval(t) %其中t为字符串。它的作用是把字符串的内容作为对应的MATLAB语句来执行。