Matlab基本知识入门
目录
- Matlab基本知识入门
- Matlab基本的小常识
- 基础知识
- 输出和输入函数(disp和input)
- sum函数
- matlab中如何提取矩阵中指定位置的元素?
- size()函数
- remat()函数
- Matlab中的矩阵运算
- Matlab中求特征值和特征向量
- find()函数
- 矩阵与常数的大小判断
- 判断语句
Matlab基本知识入门
笔记大部分由观看【强烈推荐】清风:数学建模算法、编程和写作培训的视频课程整理出:
视频链接:https://www.bilibili.com/video/BV1DW411s7wi
Matlab基本的小常识
基础知识
- 在每一行的语句后面加上分号(一定要是英文的),表示不显示运行结果

a = 3;
a = 5
-
多行注释:选中要注释的语句,快捷键Ctrl+R
-
①取消注释:选中要取消的注释语句, 快捷键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中两个字符串的合并方法
-
strcat(str1,str2…,strn)
strcat(‘字符串1’,‘字符串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函数
-
如果是向量(无论是行向量还是列向量),都是直接求和
E = [1,2,3] sum(E) % E = 6 E = [1;2;3] sum(E) % E = 6 -
如果是矩阵,则需要根据行和列的方向作区分
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中如何提取矩阵中指定位置的元素?
-
取指定行和列的一个元素(输出的是一个值)
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) -
取指定的某一行的全部元素(输出的是一个行向量)
clc;A A(2,:) A(5,:) -
取指定的某一列的全部元素(输出的是一个列向量)
clc;A A(:,1) A(:,3) -
取指定的某些行的全部元素(输出的是一个矩阵)
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,:) % 取第二行到倒数第二行 -
取全部元素(按列拼接的,最终输出的是一个列向量)
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),其中最常用的两个方法:
- E= eig(A):求矩阵A的全部特征值,构成向量E
- [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
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
