Matlab基本知识入门

目录

  • Matlab基本知识入门
    • Matlab基本的小常识
      • 基础知识
      • 输出和输入函数(disp和input)
      • sum函数
    • matlab中如何提取矩阵中指定位置的元素?
    • size()函数
    • remat()函数
    • Matlab中的矩阵运算
    • Matlab中求特征值和特征向量
    • find()函数
    • 矩阵与常数的大小判断
    • 判断语句

Matlab基本知识入门

笔记大部分由观看【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程整理出:
视频链接:https://www.bilibili.com/video/BV1DW411s7wi

Matlab基本的小常识

基础知识

  1. 在每一行的语句后面加上分号(一定要是英文的),表示不显示运行结果

请添加图片描述

a = 3;
a = 5
  1. 多行注释:选中要注释的语句,快捷键Ctrl+R

  2. ①取消注释:选中要取消的注释语句, 快捷键Ctrl+T

    ②clear 可以清除工作区的所有变量

    ③clc 可以清除命令行窗口的所有文本,让屏幕变得干净。

    所以很多代码开头都有clear;clc

    分号也用于区分行,这两条一起使用,起到初始化的作用,防止之前的结果对脚本文件(后缀名是.m)产生干扰

输出和输入函数(disp和input)

  • matlab中disp()就是屏幕输出函数,类似于C语言中的printf()函数

    disp('我是梁先生,大家好呀!')
    % 向量表示
    a = [1,2,3]
    %同一行中用逗号分隔,也可以不用逗号直接用空格
    a = [1 2 3]
    %分号可以用来分割每一行的元素
    a = [1;2;3]
    disp(a)
    disp(a);
    %disp()函数比较特殊,这里可用分号,也可以不要分号
    
  • input函数

% 一般我们会将输入的数、向量、矩阵、字符串等赋给一个变量,这里我们赋给A
A = input('请输入A:');
B = input('请输入B:')
% 注意观察工作区,并体会input后面加分号和不加分号的区别
  • matlab中两个字符串的合并方法
  1. strcat(str1,str2…,strn)
    strcat(‘字符串1’,‘字符串2’)
    中间一定要用英文逗号隔开!

  2. [str 1,str 2,…str n]或者[str1 str2 str3 … strn ]

    借用向量的表示形式,中间可以用逗号或者空格!

  • 一个有用的字符串函数
    num2str 将数字转换为字符串
c = 100
num2str(c)
disp(['c的取值为' num2str(c)])
disp(strcat('c的取值为', num2str(c)))

sum函数

  1. 如果是向量(无论是行向量还是列向量),都是直接求和

    E = [1,2,3]
    sum(E)
    % E = 6
    E = [1;2;3]
    sum(E)
    % E = 6
    
  2. 如果是矩阵,则需要根据行和列的方向作区分

    clc
    E = [1,2;3,4;5,6]
    %维度 dim = 1表示按照列 dim = 2表示按照行 默认dim = 1
    % a=sum(x); %按列求和(得到一个行向量)
    a = sum(E)
    a = sum(E,1)
    % a=sum(x,2); %按行求和(得到一个列向量)
    a = sum(E,2)
    % a=sum(x(:));%对整个矩阵求和
    a = sum(sum(E))
    a = sum(E(:))
    

matlab中如何提取矩阵中指定位置的元素?

  1. 取指定行和列的一个元素(输出的是一个值)

    A=[1 1 4 1/3 3;1 1 4 1/3 3;1/4 1/4 1 1/3 1/2;3 3 3 1 3;1/3 1/3 2 1/3 1];
    A
    A(2,1)
    A(3,2)
    
  2. 取指定的某一行的全部元素(输出的是一个行向量)

    clc;A
    A(2,:)
    A(5,:)
    
  3. 取指定的某一列的全部元素(输出的是一个列向量)

    clc;A
    A(:,1)
    A(:,3)
    
  4. 取指定的某些行的全部元素(输出的是一个矩阵)

    clc;A
    A([2,5],:)      % 只取第二行和第五行(一共2行)
    A(2:5,:)        % 取第二行到第五行(一共4行)
    A(2:2:5,:)      % 取第二行和第四行 (从2开始,每次递增2个单位,到5结束)
    1:3:10
    10:-1:1
    A(2:end,:)      % 取第二行到最后一行
    A(2:end-1,:)    % 取第二行到倒数第二行 
    
  5. 取全部元素(按列拼接的,最终输出的是一个列向量)

    clc;A
    A(:)
    

size()函数

size()函数是用来求矩阵A的大小的,他返回一个行向量,第一个元素是矩阵的行数,第二个元素是矩阵的列数

%中间有分号,是矩阵
A = [1,2,3;4,5,6]
%中间没有分号,是向量
B = [1,2,3,4,5,6]
size(A)
size(B)
  • 将矩阵A的行数返回给第一个变量r,将矩阵的列数返回第二个变量c

    r = size(A,1)  %返回行数
    c = size(A,2) %返回列数
    

remat()函数

B = repmat(A,m,n):将矩阵A复制m×n块,即把A作为B的元素,B由m×n个A平铺而成。

A = [1,2,3;4,5,6] 
B = repmat(A,2,1)
B = repmat(A,3,2)

Matlab中的矩阵运算

MATLAB在矩阵的运算中,“”号和“/”号代表矩阵之间的乘法与除法(A/B = A*inv(B))

A = [1,2;3,4]
B = [1,0;1,1]
A * B
inv(B)  % 求B的逆矩阵
B * inv(B)
A * inv(B)
A / B
  • 两个形状相同的矩阵对应元素之间的乘除法需要使用“.*”和“./”

    A = [1,2;3,4]
    B = [1,0;1,1]
    A .* B
    A ./ B
    
  • 每个元素同时和常数相乘或相除操作都可以使用

    A = [1,2;3,4]
    A * 2
    A .* 2
    A / 2 
    A ./ 2
    %结果都一样
    
  • 每个元素同时乘方只能用.^

    A = [1,2;3,4]
    A .^ 2
    A ^ 2 %结果相当于A * A
    

Matlab中求特征值和特征向量

  • 计算矩阵A的特征值和特征向量的函数是eig(A),其中最常用的两个方法:
  1. E= eig(A):求矩阵A的全部特征值,构成向量E
  2. [V,D] = eig(A):求矩阵A的全部特征值,构成对角阵D,并求A的特征向量构成V的列向量。(V的每一列都是D中与之相同列的特征值的特征向量)

find()函数

它可以用来返回向量或矩阵中不为0的元素的索引

X = [1 0 4 -3 0 0 0 8 6]
ind = find(X)
  • 其有多种用法,比如返回前一个不为0元素的位置
ind = find(X,2)
  • 若X是一个矩阵(二维,有行和列),返回的索引是直接将矩阵看成列向量,然后返回不为0的索引
X = [1 -3 0;0 0 8;4 0 6]
ind = find(X)
%这是因为Matlab在储存矩阵的时候,是一列一科进行储存的。
  • 按照行列输出
%用两个变量接收
[r,c] = find(X)
[r,c] = find(X,1) %只找第一个非0元素

矩阵与常数的大小判断

  • 一共有三种运算符,大于>;小于<;等于==(一个等号表示赋值,两个等号表示判断)
X = [1 -3 0;0 0 8;4 0 6]
%返回的是相同大小的逻辑数组
X > 0
X == 4

判断语句

MATLAB的判断语句,if所在的行不需要冒号,语句的最后一定要用end结尾;中间语句要注意缩进。

a = input
if a >= 85  disp('成绩优秀')
elseif a >= 60 disp('成绩合格')
elsedisp('成绩挂科')
end


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部