MATLAB软件基础

MATLAB软件的基本命令

1.1算术运算

1
>> 3*(5-2)+4^(6-3)/2

ans =

    41
2
>> 2^(1/2)

ans =

    1.4142
3
>> 1/3+pi

ans =

    3.4749
4
>> 2^100 

ans =

   1.2677e+30

1.2 函数

常用的函数
在这里插入图片描述

5
>> sin(pi/6)

ans =

    0.5000
6

>> sqrt(3.3+1.5i)

ans =

   1.8608 + 0.4031i
7
>> rand

ans =

    0.8147
8
>> rand('seed',45) %rand以45为种子产生随机数
>> rand

ans =

    0.0809

2.3 赋值与函数定义

9
>> x=1

x =

     1
10
>> a=1;b=2;c=3

c =

     3
11
>> d=a+b*c

d =

     7
12
>> f=inline('x^2+y^2');f(1,2)

ans =

     5

2.4 逻辑运算

1.关系运算
表0.2
x==yx~=yx>yx>=yx<yx<=y

13
>> 3>=2

ans =

     1

MATLAB中一般不适用连续的关系运算符.

14
>> -3<-2<-1

ans =

     0

2.逻辑运算
表0.3
~pp&qp|q

15
>> (5.8>4.1)&~(3.2==2.0)

ans =

     1

3.逻辑判断命令
在这里插入图片描述

16
>> x=isprime(2),y=isprime(4)

x =

     1


y =

     0

2.5 矩阵与向量

1.向量与矩阵的定义
(1)直接定义

17
>> a=[1,2,3;4,5,6;7,8,10]

a =

     1     2     3
     4     5     6
     7     8    10
>> x=[2,3]

x =

     2     3
>> y=[4;5]

y =

     4
     5

(2)向量的冒号定义

18
>> z=12:-3:1

z =

    12     9     6     3

(3)语句定义
在这里插入图片描述

19
>> diag([2,6])

ans =

     2     0
     0     6

2.矩阵的元素操作
MATLAB利用下标访问矩阵元素

20
>> a=[1,2,3;4,5,6;7,8,10];
b1=a(3,1)
b2=a([1,3],[1,2])
b3=a(end,:)
b4=a(7)
a(:,4)=[3,2,1]
b5=reshape(a,2,6)
c=find(b3==8)

b1 =

     7


b2 =

     1     2
     7     8


b3 =

     7     8    10


b4 =

     3


a =

     1     2     3     3
     4     5     6     2
     7     8    10     1


b5 =

     1     7     5     3    10     2
     4     2     8     6     3     1


c =

     2

3.矩阵的基本运算
矩阵的加减法是对相同维数的矩阵的对应元素进行加减,与一般的理解一致.如果是矩阵和标量进行加减,则该矩阵的所有元素与该标量进行运算.

21
>> x=[1,2,3;4,5,6];y=[7,8,9;4,3,2];z=x+y,w=x-5

z =

     8    10    12
     8     8     8


w =

    -4    -3    -2
    -1     0     1
22 求线性方程组
x+y+z=6
2x-y+3z=9
5x+y-z=4
并验证.
>> A=[1,1,1;2,-1,3;5,1,-1];b=[6;9;4];x=A\b,r=A*x-b

x =

    1.0000
    2.0000
    3.0000


r =

   1.0e-14 *

    0.0888
    0.1776
   -0.0444

2.6 符号运算

23 
>> syms a b x y
24
>> x=sym('x','rea');
>> y=sym('y','real');
>> z=x+i*y;
>> conj(z)
 
ans =
 
x - y*1i
25
f=sym('(a+b)^2');a=1;g=subs(f)
g =
 
(b + 1)^2

2.7 M文件

1.程序文件

27
当前目录:建立prol.m文件
x=1:2
y=x.^2
sum(y)

>> prol

x =

     1     2


y =

     1     4


ans =

     5

2.函数文件

28
当前目录:建立文件g.m
function[h,c,j,s]=g(x,y)
h=x+y;
c=x-y;
j=x*y;
s=x/y;
>> [h,c,j,s]=g(4,5)

h =

     9


c =

    -1


j =

    20


s =

    0.8000
29
下面的程序用来检验一个正整数能否可以写成两个素数的和.如果正整数x不能写成两个素数的和,则输出一个空集;若正整数x能写成两个素数的和,则输出两个素数构成的集合,这两个素数的和为x
f.m
function s=f(x)
m=2;n=floor(x/2);s=[];
while isempty(s) & m<=n
	if isprime(m) & isprime(x-m)
	s=[m,x-m];
	end
	m=m+1;
end

>> f(18)

ans =

     5    13

>> f(11)

ans =

     []

2.8 程序流程控制

1.分支结构

30 定义符号函数h(x)
1,x>0
0,x=0
-1,x<0

f.m
function y=h(x)
if x>0
y=1
elseif x==0
y=0
else 
y=-1
end

>> f(2)

y =

     1

2. 循环结构
1)for循环

31
计算1+2+...+2020!
>> s=0;p=1;
>> for k=1:20
s=s+k;
p=p*k;
end;
>> disp(['s=',num2str(s),',p=',num2str(p)])
s=210,p=2.43290200817664e+18

2)while循环

32
>> format long;
x=1;stopc=1;esp=1e-8;n=0;
while stopc>eps
x=(x+2/x)/2;n=n+1;
stopc=abs(x-sqrt(2));
end
n
x

n =

     5


x =

   1.414213562373095

2.9 输入输出命令

1.键盘输入命令input

>> x=input('x=')
x=3

x =

     3

2.屏幕输出命令disp

>> a=1;b=2.5;
disp([a,b]), disp(['a=',num2str(a),'b=',num2str(b)])
   1.000000000000000   2.500000000000000

a=1b=2.5

3. 格式输出命令fprintf

34
>> a=1;b=2.5;fprintf('a=%5i,b=%10.3f',a,b)
a=    1,b=     2.500

4.文件建立与关闭命令fopen与fclose

35 
下列命令首先产生一个矩阵,然后将其存入一个文件,最后显示该文件的内容.

>> x=0:0.2:1;
y=[x;exp(x)];
fid=fopen('a.txt','wt');
fprintf(fid,'%6.2f %12.8f\n',y);
fclose(fid);
type a.txt

  0.00   1.00000000
  0.20   1.22140276
  0.40   1.49182470
  0.60   1.82211880
  0.80   2.22554093
  1.00   2.71828183

5.格式读入命令fscanf

36
下面的程序将a.txt 文件的内容读入到矩阵b中
>> fid=fopen('a.txt','r');
b=fscanf(fid,'%g %g',[2,inf]);
b=b'
fclose(fid);

b =

                   0   1.000000000000000
   0.200000000000000   1.221402760000000
   0.400000000000000   1.491824700000000
   0.600000000000000   1.822118800000000
   0.800000000000000   2.225540930000000
   1.000000000000000   2.718281830000000

2.10 窗口、文件、系统命令
表0.4
dirdiarydiary('filename')diary offwhowhossave filename x yclearclear x yclcclfhelp namefopen('file')fclose('file')tictocclock

38 
下面的命令以当前时间的秒为种子产生随机数,每次重新启动MATLAB时,产生的随机数是一致的.该命令提供了一种产生不同随机数的方法.
u=clock;rand('seed',u(6));rand;

参考文献
杨振华.郦志新.2010.数学实验.北京:科学出版社

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值