Matlab入门

入门

01 向量

声明

a1=[1 2 3];
a1=[1,2,3];
a2=1:1:3;
a3=linspace(1,3,3);

访问

a1(i);
a1(a:b:c)
a为初值,b为步长,c为终值。

运算

a+b
a-b 
a*b 

02 矩阵

声明

A=[a1,a2,a3;b1,b2,b3;c1,c2,c3;]
空矩阵:
A=[]
零矩阵:
zeros(m,n)
值全为1矩阵:
ones(m,n)
单位矩阵:
eye(m,n)
主对角线元素为a1,a2...an矩阵:
diag([a1 a2 ... an])
n阶魔方矩阵:
magic(n)
0~1间均匀分布的随机矩阵:
rand(m,n)

访问

提取第i行元素:
A(i,:)
提取第j列元素:
A(:,j)
矩阵A按列拉长为一个列向量:
A(:)
提取矩阵A的第i1至i2行、j1至j2列元素构成新矩阵:
A(i1:i2,j1:j2)
删除矩阵A的第i1至i2行构成的新矩阵:
A(i1:i2,:)=[]
删除矩阵A的第j1至j2列构成的新矩阵:
A(:,j1:j2)=[]
拼接矩阵
[A B]或[A;B]

运算

矩阵相乘
A*B
矩阵点乘
A.*B
矩阵除法,A\B表示A(逆)B, A/B表示BA(逆)
A\B or A/B
求逆阵
inv(A)
行列式
det(A)
求秩
rank(A)
求特征值
eig(A)
求阶数
size(A)
求行最简形式
rref(A)

实践

1.给出区间[1,2]上的6个等分点数据

linspace(1,2,6)

ans =
    1.0000    1.2000    1.4000    1.6000    1.8000    2.0000

2.生成一个均值为1,标准差为0.1的3*4形式的正态分布的随机矩阵;

B= 1 + 0.1*randn(3,4);
或者 B= 1 + 0.1*randn([3,4])

B =

    0.8852    1.2585    0.9918    0.8205
    1.0105    0.9333    0.8067    1.0840
    1.0722    1.0187    0.9561    0.9112

M文件和程序结构

01 M文件

M文件:命令文件和函数文件
(1)命令文件
仅有命令组成,不带输入输出的参数。步骤:

  1. 新建脚本文件
    在这里插入图片描述

  2. 双击文件编辑命令

如果命令结尾无分号,说明要输出;
如果有分号,说明运行但不输出。

在这里插入图片描述

  1. 调用脚本文件

调用(直接名字调用)并输出如下:

myFun

A =

     1     1     1     1
     1     1     1     1
     1     1     1     1
     1     1     1     1

函数文件:建立M函数文件的一般格式为:

function[输出参数表]=函数名(参数形式)

                %此处显示函数体
end

实践

1.试建立M函数文件计算矩阵A=[1,2;3,4]的行列式|A|和秩rank(A).

---*myFun.m文件*---
function [d1,d2]=fun(x)
d1=det(x)
d2=rank(x)
end
---*命令行*---
>> A=[1,2;3,4]
A =

     1     2
     3     4

>> myFun(A)
d1 =
    -2
d2 =
     2

02 程序结构

程序结构有两种:选择语句和循环语句

选择语句结构

----------------
if 条件表达式
   执行语句体
end
----------------
if 条件表达式
    执行语句体1
else
    执行语句体2
end
----------------
if 条件表达式
    执行语句体1
else
    执行语句体2
    ...
end
----------------
switch 开关表达式

case{表达式1}

    执行语句体1 

case{表达式2}

    执行语句体2
    ...
otherwise

    执行语句体n
end 
----------------

实践

  1. 输入三角形的三条边,求面积。
A = input ('请输入三角形的三条边:');
    if A(1)+A(2)>A(3) && A(1)+A(3)>A(2) && A(2)+A(3)>A(1)
        p=(A(1)+A(2)+A(3))/2;
        s = sqrt(p*(p-A(1))*(p-A(2))*(p-A(3))); %计算三角形面积
        disp(s)    %直接将要显示的字符放入括号中
    else
        disp('不能构成一个三角形.')
    end

运行结果:

>> TriangularArea
请输入三角形的三条边:[3 4 6]
    5.3327
>> TriangularArea
请输入三角形的三条边:[1 2 3]
不能构成一个三角形.
  1. 学生成绩等级转化标准为:考试成绩分数在[90,100)记为优秀,在[80,90)记为良好,在[70,80)记为中等,在[60,70)记为及格,在[0,60)记为不及格。输入某学生成绩,请编程判断该学生的成绩等级。
x=input('请输入成绩:')
    switch fix(x/10)          %fix()表示朝0方向取整
        case{9,10}
            f='优秀'
        case{8}
            f='良好'
        case{7}
            f='中等'
        case{6}
            f='及格'
        otherwise
            f='不及格'
    end
        

运行结果:

>> JudgLevel
请输入成绩:100
f =
    '优秀'

>> JudgLevel
请输入成绩:51
f =
    '不及格'

>> JudgLevel
请输入成绩:84
f =
    '良好'
  1. 设函数f(x)={x-1,x<0; 0,x=0; x+1,x>0;} 求f(-1)
x=input('x=');
if x<0
    f=x-1 
else if x==0
    f=0
else
    f=x+1
end         %注意这个end
end

运行结果

>> test
x=-1
f =
    -2

>> test
x=0
f =
     0

>> test
x=1
f =
     2

>> 
此外还有一种方法,即使用函数。
function f = test(x)   
%注意此处,函数名与脚本文件名应该一致。
%我的脚本文件命名为test,因此函数名也为test。
    if x<0
        f=x-1 ;
    else if x==0
    f=0;
    else
    f=x+1;
    end          
end

运行结果

>> y=test(1)
y =
     2

>> y=test(0)
y =
     0

>> y=test(-1)
y =
    -2

2.2 循环语句结构

1 for语句,调用格式为

for 循环变量=初值:步长:终值
    循环语句体
end

2 While语句,调用格式为:

While 条件表达式
      循环语句体
end

实践

1.分别用for和while循环语句计算 ∑ i = 1 100 \sum_{i=1}^{100} i=1100 i i i

%for语句
sum1=0;
for i = 1:1:100
    sum1=sum1+i;
end
disp('sum1=')
disp(sum1)

%while语句
sum2=0;
i=1;
while i<=100
    sum2=sum2+i;
    i=i+1;
end
disp('sum2=')
disp(sum2)

运行结果为:

>> sum1To100
sum1=
        5050

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值