导图社区 MatLabMatrix实验室
MatLabMatrix Laboratory 计算机 编程,主要包含基本介绍、基础、矩阵操作 数值计算、画图、脚本编程等。
编辑于2023-12-29 19:07:02MatLab Matrix Laboratory
基本介绍
窗口介绍
promot 命令提示符
帮助命令
help [函数名]
显示函数功能和用法
lookfor [关键词]
查找和关键词匹配的文档并给出链接
clc 清屏
clear 清空工作区(变量)
;的作用
隐藏计算结果
分开矩阵的行
% 注释
:生成向量
开始 : 增量 : 结束(要小于这个)
save 保存工作区
save filename var1 var2 …
可以一次保存多个工作区/变量
可以保存整个工作区,也可以只保存一个变量
默认情况下文件个工作区/变量同名
load 工作区
load filename
.mat 和 .dat 文件
基础
变量
合法命名规则
无需声明(statement/declare)
赋值,标量运算,矢量运算
特殊变量 pi, i, j, Inf, NaN, clock, date, ans
数据显示格式
数值格式、行距格式
数组(array),向量(vector),矩阵(matrix)
都是同一个东西
索引从 1 开始
用 ;分开不同的行
同一行的不同元素可以用空格(space)或者逗号(commas)分开
访问方式
按空间访问
A(row, column)
行优先
按纯序号访问
数据类型
内建(built-in)函数
基本初等函数
sin,cos,tan
^ 乘幂计算
exp e的n次方
log 自然对数;log10 以10为底的对数
abs 绝对值
sprt 开平方
整数操作
round 四舍五入
ceil 向上取整
floor 向下取整
fix 裁掉小数
矩阵操作
特殊函数
zeros 生成全零矩阵
variable name = zeros (row No., column No.)
ones 生成全 1 矩阵
eye 生成单位矩阵(主对角线为1,不一定为方阵)
rand 生成范围为 (0, 1) 的均匀分布随机数
randn 生成范围为 (-∞, +∞) 的正态(自然)分布随机数
randi
X = randi([imin,imax],___) X = randi(imax) X = randi(imax,n) X = randi(imax,sz1,...,szN)
矩阵操作
矩阵合并(merging)
C = [A B] 或 C = [A; B]
矩阵运算
+,-,*,/,\,^
/和\ 斜线下面的为被除的(要求可逆),而且要符合矩阵乘法规则
^-1,inv 求逆矩阵
(')(共轭转置),(.')(非共轭转置),transpose=(.')
解方程
x*A = B,x = B*(A^-1) = B/A
点操作
逐个矩阵元素(元素对元素)进行运算
常用矩阵操作函数
数值计算
关系运算、逻辑运算
运算符优先级
括号,指数,非,乘除,加减,关系运算符,且,或
多项式
向量表示法
加减,直接用 - +
乘法 conv(convolution,卷积)
除法 deconv
求根 roots
poly 由根得到多项式
polyval 计算多项式某点处的值
支持向量输入和向量输出
符号运算
sym,syms
eval 将符号表达式转成数值
limit 求极限
limit(f, x, a)
diff 求导
diff(f)
默认求导方式
diff(f, x)
对 f 关于 x 求导
diff(f, x, n) 求 f 在 x=n 处的导数
int 求积分
inf(f, x)
对 f 关于 x 进行不定积分
inf(f, x, a, b)
定积分
画图
二维
函数
plot(x, y)
linspace(x1, x2) 线性分割成 100 份
linspace(x1, x2, n) 线性分割成 n 份
logspace(x1, x2) 按对数分割
画图步骤
对 x 进行分割
求 y 的值
plot(x, y)
图像标签
title 标题
x(y)label x(y) 轴标签
grid on/off 网格线开关
axis( [ xmin xmax ymin ymax ] ) 设置坐标轴限制
legend 图例
设置线型和标记
多图模式
在同一个窗口放置图片
plot(x,y1,x,y2);
一次 plot 多个图
hold on/off
开启 hold on 可以一直放很多图
subplot 子图
subplot(m,n,p)
m*n 网格,p 图片标号,行优先
在不同的窗口放置图片
figure(n)
clf 清除图像
三维
plot3 画线
参数方程
分割 t
求x,求y
plot3(x, y, t)
画曲面
函数
mesh 网格线图
surf 曲面图
contour 等高线图
meshgrid 生成 xy 平面的网格
[X Y] = meshgrid(1:5, 4:8)
X = 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 1 2 3 4 5 Y = 4 4 4 4 4 5 5 5 5 5 6 6 6 6 6 7 7 7 7 7 8 8 8 8 8
三维画图步骤
准备数据 [x y] = meshgrid(xs:xi:xe, ys:yi:ye)
z = f(x,y),要用矩阵的点运算
mesh(x, y, z)
脚本编程
语法
输入输出
x = input("prompt")
disp(array)
num2str,str3num
fprintf
分支结构
if-else-end
if-elseif-else-end
switch-case{}-otherwise-end
try-catch-end
循环结构
while-end
for-end
break, continue
函数编程
function [outarg1,outarg2,…] = fname(inarg1,inarg2,…) ........ end
注意
函数和命令行共享工作区
一个函数在一个文件里面,.m 文件名和函数名同名
lookfor 命令只搜索 H1 注释的内容
help 会显示显示所有开头的注释
函数示意图
子函数
和主函数放在同一个文件中
除了主函数(和文件名同名的函数)其他都是子函数
用于辅助主函数完成任务
语法一致