原文地址:Matlab与数学计算 - Pleasure的博客

下面是正文内容:

前言

这是一篇笔记。主要用于介绍MatLab的作用以及其作为数学工具的使用方法。

目的是总结学校课件复习自用,但是不可能像相关的书籍那么系统全面,力求简单明了。都是一些最基础的用法,更近一层的深入需要特定的环境和实例。

MatLab是一种高级技术计算语言和交互式环境,用于算法开发、数据可视化、数据分析和数值计算。使用场景有:复杂数学问题的统计与计算,国赛美赛时的数学建模,模电的绘制与测试,嵌入式系统开发的编写,应用程序的开发等等。

Matlab是Matrix Laboratory的缩写,其设计初衷是用于科学和工程领域的计算和仿真。国内外绝大多数的高校都会用到。主要用于学术环境

但是作为一款高级计算软件,个人评价是:MatLab就好像需要用涂卡笔作答一样——存在,但是可能可以被2B铅笔替代。

正文

Matlab与数学计算-LMLPHP

下面正式开始,虽然官方发布过MatLab Primer指导用书,但毕竟是纯英文的。就不附带链接了。

基本函数

clear——Delete all variables in the current Workspace
clc——Clear the Command Window without deleting assigned variables
who——查看现有变量
whos——查看变量细节
help——查看特定函数的帮助
doc——调用MATLAB帮助中心

自然对数e——用exp(1)替代,exponential
余数——rem(x),remainder after division
共轭复数——conj(x),complex conjugate

%——格式化操作符
f——转换字符
\n——换行
%.2f——表示将浮点数数值格式化为带有两位小数的字符串

向量

0维数组是标量(scalar),1维数组是向量(vector),二维数组是矩阵(matrix)

索引向量的函数
length(x)——返回向量中数的个数,
v‘——返回转置向量(比如行列向量转换),
v(i)——返回向量的第i个数

构造向量的函数
等间隔向量——开始值:步长:终止值 或linspace(StartValue,EndValue,PointNumber)都能实现。比如-10:1:10或linspace(-10,10,21)输出[-10,-9,-8,…,0,1,2,…,10]。

矩阵

构造矩阵的函数

索引矩阵的函数
假设一个5行6列的矩阵M
M(2,:)——M的第二行
M(:,2)——M的第二列
M(2:4,:)——M的第二到四行
sum(sum(M))——M中所有元素的和
M(2,:)= [] ——删除M第二行的元素
size(M)——返回矩阵M的维度,即[5,6]

操作矩阵的函数
A‘——转置矩阵,
inv(A)——逆矩阵(与原始矩阵相乘得到单位矩阵),
det(A)——矩阵的行列式(线性变换下所引起的缩放因子,[a,b;c,d] det(A)=ad-bc)
A^2——加上inv,det只能适用于方阵
A*B——两个矩阵的点乘,大小必须相同
A.*B——AB大小相同,矩阵中逐个元素相乘
A.^B——逐个元素求幂

画图

plot(x,y,'r:')

需要用到上面操作矩阵的函数,最简单的示例,注意这里的“.”不能落下!

x = linspace(-2,2);
y = x.^3+2*x.^2-4*x-5;
plot(x,y)

“r:”代表规则,

Matlab与数学计算-LMLPHP

对于叠加图,在r:部分附上不同的规则

plot(x,y1,'r--')
hold on
plot(x,y2,'r:')
hold off

逻辑表述

逻辑数组
0代表错误,1代表正确,
比如,a=1:5
b=a>=3,将结果赋值给b,b=00111
a(b)使用b作为显示元素,a=345

for while结构的迭代嵌套等,示例代码

claer;clc
n = 10;
A = zeros(n,n);
for i = 1:n
    for j = 1:n
        A(i,j) = n*(i-1)+j;
    end
end
disp(A)
index = ~isprime(A);
A(index) = 0;
disp(A)

自定义函数

通过MATLAB事先内置的函数,进行重构

与依赖input output等用户交互的脚本不同,用户自定义函数一般在脚本中直接使用

函数变量的命名不能使用空格,最好写在脚本的开头并附带注释

尾声

对于MATLAB实在不知道能说些什么,就当我说了一堆废话

03-30 07:32