
状态不好,学学MATLAB做做准备吧。
一、基本情况
1.1 书写
一行写不下?
%可以加上三个小黑点(续行符)并按下回车键,然后接下去再写。例如 s=-/+/-/+/-/+/-…- /+/-/+/-/;
1.2 运算相关
不等于:~=
所以,非:~
常用的矩阵运算:
eye(size(A)) 产生与A矩阵同阶的单位矩阵
zeros(m,n) 产生0矩阵
ones(m,n) 产生1矩阵
rand (m,n) 产生随机元素的矩阵
Size(a) 返回包含两个元素的向量。
Length(a) 返回向量的最大者。
--两个栗子
求解线性方程组AX=B
1 1.5 2 9 7 3
0 3.6 0.5 -4 4 -4
其中A= 7 10 -3 22 33 , B= 20
3 7 8.5 21 6 5
3 8 0 90 -20 16
在MATLAB命令窗口输入命令:
a=[1,1.5,2,9,7;0,3.6,0.5,-4,4;7,10,-3,22,33;3,7,8.5,21,6;3,8,0,90,-20];
b=[3;-4;20;5;16];
x=a\b
【例2】 求方程 x^4+7x^3 +9x-20=0的全部根。
在MATLAB命令窗口输入:
p=[1,7,0,9,-20]; %建立多项式系数向量
x=roots(p) %求根
二、程序设计
2.1 输入输出数据
--输入
调用格式: A=input(提示信息,选项);
R = INPUT('What is your name','s')
求一元二次方程ax^2+bx+c=0
a=input('a=?');
b=input('b=?');
c=input('c=?');
d=b*b-4*a*c;
x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)]
将该程序以aa.m文件存盘,然后运行aa.m文件。
--disp
A='Hello,MATLAB';
disp(A)
输出为: Hello,MATLAB
2.2 举个例子
计算素数
% Calculate the primes between min to max
clc
clear all
max=input('The maxium num is ')
min=input('The minum num is ') n=;
for m=min:max
flag=; %the sign of prime or not
j=m-;
i=;
while i<=j & flag
if rem(m,i)==
flag=;
end
i=i+;
end
if flag
n=n+;
prime(n)=m;
end
end
prime %变量prime存放素数
输入20个数,求其中最大数和最小数。要求用循环结构来实现。
function [max,min]=findmaxmin(a)
if ~ismatrix(a)
disp('Please type in a matrix!')
else
[m,n]=size(a);
max=a(,);
min=a(,);
for i=:m
for j=:n
if a(i,j)<=max&a(i,j)>=min
continue
elseif a(i,j)>max
max=a(i,j);
elseif a(i,j)<min
min=a(i,j);
end
end
end
end
三、文件操作
建立一数据文件test.dat,用于存放矩阵A的数据
A=[-0.6515 -0.2727 -0.4354 -0.3190 -0.9047
-0.7534 -0.4567 -0.3212 -0.4132 -0.3583
-0.9264 -0.8173 -0.7823 -0.3265 -0.0631
-0.1735 -0.7373 -0.0972 -0.3267 -0.6298
-0.4768 -0.6773 -0.6574 -0.1923 -0.4389] Fid=fopen('test.dat', 'w') cnt=fwrite(Fid, A, 'float') fclose(Fid)
四、绘图
4.1 plot
计算0-2pi的sinx*cos5x
clear
clc
x=linspace(,*pi,);
y=sin(x).*cos(*x);
plot(x,y);
title('sinx*cos5x');
xlabel('x');
ylabel('y');
text(x,y,'y'); %线上文字
legend('sinx*cos5x'); %图示
axis auto;
axis on;