【matlab基本使用笔记】
ctrl a +i 代码格式化
fzero求非线性函数的根
arrayfun将函数应用于每个数组元素
format long长格式输出
format long g取消科学计数法
linspace
logspace
一、界面使用
1.创建matlab脚本
利用.m后缀的脚本文件(又称为m文件)编程:
点击MATLAB菜单栏:主页-一新建-一脚本,或者使用快捷键Ctrl+N
点击MATLAB菜单栏:编辑器一一保存,或者使用快捷键CtrI+S
点击MATLAB菜单栏:编辑器一一运行,或者使用快捷键F5
2.清空
清空工作区 :clear;
清空命令行窗口 :clc;
3.matlab文件管理


4.帮助系统
5.创建变量
whos 查看工作区中变量
%matlab中创建变量不需要声明 默认使用双精度浮点数
%创建变量后在命令窗口立即显示结果 并且在工作区添加变量
%不指定输出变量时 默认使用ans存储运算结果
%程序语句以分号结尾时 命令行窗口中不显示运算结果
%在命令行窗口中按回车可以运行程序
%命令行中若输入一条语句后换行但不想运行 用shift+enter
%命令行中允许一行输入多个语句 用,or;分隔
%快速回调之前使用过的语句可以用方向键上下键
%清除或不执行当前语句用esc键退出
%可以选中部分程序 按回车键直接运行这部分
%创建数组或矩阵用中括号括起数值
演示:
1.2/Matlab创建变量/非常适合小白从零学起_哔哩哔哩_bilibili

二、运算基础
tips:多行注释快捷键 ctrl+r (不过只能用在编辑区不能用在命令行)
多行解注释 ctrl+t
1.变量
在MATLAB中变量的命名应遵循如下规则:
变量名必须以字母开头,之后可以是任意的字母、数字或下划线_。
变量名区分字母的大小写,例如 a和 A代表不同的变量。
变量名不超过63个字符,第63个字符以后的字符将被忽略。
不能定义与MATLAB关键字同名的变量(例如if或end)。要获取关键字
的完整列表,请在命令行输入 iskeyword 并运行。
特殊变量:ans、pi、inf/-inf(正负无穷)等

MATLAB 使用等号“="给变量赋值
tips:编辑器里语句后面如果带分号 运行结果不会在命令行中显示(工作区会显示 对应变量)
2.数据类型
数字:整数和浮点数
字符串和字符:分别用 “”和‘’括起来
矩阵:[]

3..基本运算符的使用

这里的逻辑值指0 1(在c中为bool类型)

三、矩阵基础
上一节补充:

对两个字符变量进行基本运算,其实运算的是字符的ascii码值
1.矩阵的创建
1.直接创建法
适用于矩阵中元素数量较少的情况。
输入矩阵时要以中括号[]作为标识符号,矩阵的所有元素必须都在中括号内。
矩阵的同行元素之间用空格或逗号分隔,行与行之间用分号或回车键分隔。
2.函数创建法
MATLAB提供的用来生成某些特定的矩阵的函数,常用函数:
第一组函数:zeros、ones 和eye。这三个函数分别用来创建全为0的矩阵、全为1
的矩阵和单位矩阵。
第二组函数:rand、randi和randn。这三个函数分别用来创建均匀分布的随机数、
均匀分布的随机整数和标准正态分布的随机数。

%函数创建法
a1=zeros(5) %生成全零方阵 5行5列
a2=zeros(3,4) %生成3行4列全零矩阵
b1=ones(5) %生成全1方阵 5行5列
b2=ones(3,4) %生成3行4列全1矩阵
c1=eye(5) %生成单位方阵 5行5列
c2=eye(3,4) %生成单位方阵 3行4列(这个确实能运行出来)
% %rand:创建均匀分布随机正数,1以内
%常用:rand(n),rand(m,n)
a1=rand(100) %5x5的随机数矩阵
a2=rand(3,4) %3x4的随机数矩阵
%randi:均匀分布的随机整数
%常用:randi([imin,imax],m,n) 范围上下限 m行n列
b1=randi([1,100],4) %4x4方阵
b2=randi([1,100],3,4) %3x4矩阵
%randn:标准正态分布的随机数以0为中心 正负均有
%常用:randn(n),randn(m,n)
c1=randn(100)
c2=randn(3,4)
非常建议去看帮助文档
3.导入本地文件数据(详细见后)
MATLAB可读取本地的文件,支持的常见格式如下:
》txt、.dat或.csv (适用于带分隔符的文本文件)
》xls、.xlsb、.xlsm、.xlsx、.xltm、.xltx或.ods(适用于电子表格文件)
2.矩阵元素 的修改删除
矩阵元素的修改:
直接利用等号赋值的方法对矩阵中引用位置的元素进行修改
A=[1:4;2:5;3:6;]
%1:4表示中间间隔1从1开始生成到4
%也可以两个冒号三个数据,首末数据是开头和结尾,中间数据是步长(间隔数据差值)
A(2,3)=10;%索引法把第二行第三列改成10
A(2,:)=10;%整个第二行都变成10
A([1,3],[2,3])=10;%分别把第一行和第三行的第二列第三列元素改为10
使用线性索引(单下标的索引)的方式对矩阵的元素进行修改

注意:
如果你在赋值时将一个或多个元素置于矩阵现有的行和列索引的边界
之外,则会将矩阵的大小进行拓展,MATLAB会将没有赋值的位置的元素自
动用0填充,使其保持为完整的矩形。
矩阵元素的删除
1.删除整行/整列


》如果我们将等号右侧变成空向量[],则可以删除对应位置的元素。需要注意的是,通常只能删除矩阵的整行或者整列,否则会报错。
2.线性索引

》也可以通过线性索引来删除矩阵的元素。使用线性索引可以删除任意位置的元素,不需要删除矩阵的一整行或者一整列。
(up的版本会把删除后的矩阵元素放进向量里 但是我的版本还是矩阵 嘿嘿)
3.矩阵的拼接重构重排
1.拼接

横向拼接(行数相同)

最后结果都是E
纵向拼接(列数相同)

2.重排
sort 函数:
对向量或者矩阵进行排序,sort(A,dim),在最后面加一个输入参
数'descend',变成从大到小的降序排列
dim =1时,沿着行方向(从上至下)对矩阵的每一列升序排列
dim =2时,沿着列方向(从左至右)对矩阵的每一行升序排列


sortrows函数:
基于矩阵的某一列对矩阵进行排序,同一行的元素不会改变。
sortrws(A,列),在最后面加一个输入参数'descend',变成从大到小的降
序排列

sortrws(A,[1,2]):先按第一列升序 当第一列包含重复的元素
时,sortrows 会根据下一列中的值进行排序,并对后续的相等值重复此行为。
3.重构
reshape函数:
更改矩阵的形状,reshape(A, m, n)或者 reshape(A,[m,n])


4.矩阵运算
1.常见矩阵函数——善用帮助文档
| 函数名 | 作用 |
| sum | 求和 |
| prod | 求乘积函数(product) |
| cumsum | 计算累积和(cumulativesum) |
| diff | 计算差分(difference) |
| mean | 计算平均值 |
| median | 计算中位数 |
| var | 计算方差(variance) |
| std | 计算标准差(standarddeviation) |
| min | 求最小值(minimumvalue) |
| max | 求最大值(maximumvalue) |
| mode | 计算众数 |
sum:


prod


cumsum
diff
mean
median
var
std
min
max
mode
mod 等于%取余
2.算数运算
矩阵加减
五种算术运算兼容模式(见表格)
核心:按对应位置的元素运算
矩阵乘除乘方
* 矩阵相乘
.* 矩阵中对应元素相乘(此时矩阵大小只需满足五种兼容模式)
/ 右除(用于解方程组)
\ 左除(用于解方程组)
./ 对应元素相除(此时矩阵大小只需满足五种兼容模式)
^ 矩阵的幂运算 矩阵得是方阵 另一边是个常数=连乘
.^ 对应元素的乘方 (此时矩阵大小只需满足五种兼容模式)
矩阵转置
‘ 转置后会把矩阵中的复数变为共轭复数
.' 转置后复数不变
一般来说矩阵中均为实数 效果相同
关系运算
条件也是符合五种兼容模式
== 等于
~= 不等于
> 大于
>= 大于等于
< 小于
<= 小于等于
关系运算符可以用来比较两个数组中元素的关系,如果比较的结果为真,则MATLAB会返回逻辑值1;如果结果为假,则会返回逻辑值0。(返回结果其实是一个数组 对应位置元素相同则为1 否则为0)
四、逻辑基础
1.逻辑运算符
& | ~ xor
MATLAB推荐大家直接使用运算符进行计算,因此&、和~这三个符号的功能
大家要牢记。以“&”为例:
(1)针对矩阵运算时:“逻辑与&”是对A和B进行计算的,计算时会比较
A和B对应位置的元素。需要符合算术运算中介绍的五种兼容模式即可。
(2)“逻辑与&”不仅可以作用在逻辑值0和1上,还可以用于普通的数值
上,这时候,MATLAB会将非零数值视为逻辑1,将数值零视为逻辑0进行
运算。
(3)“逻辑与&”也可以进行连续运算,例如1&2&3。
(4)为避免运算优先级的问题,直接使用小括号来指定计算顺序。
例题:
随机生成20名同学的单科成绩(假设成绩为满分100分的整数制),现
需要从中找到成绩等级为良(成绩在区间[60,80)内)的同学。如果要找出[0,60)
U[80,100]分的同学呢?
【60,80】:
%逻辑运算符可连续运算 关系运符不可
A=randi([0,100],1,20)
res=(A>=60) &(A<80)
[0,60)U[80,100]:
res2=~res
|| &&
(1)&&和只能对标量(只有一个元素)进行逻辑运算,不能对有多个元素的向量或者矩阵进行运算,而&和|可以。
(2)&&和川进行逻辑运算时具有短路功能,可以提高运行效率:
计算A&&B时,如果A为逻辑0,则B不会被判断,因为最后的结果一定是逻辑0;
计算AIIB时,如果A为逻辑1,则B不会被判断,因为最后的结果一定是逻辑 1。
2.all、any、find函数

all any
all函数和 any 函数的用法类似,以 all 函数为例,它的用法如下:
如果A是一个矩阵,那么all(A,dim)沿着dim维来判断元素是否全为非零值。
dim等于1时沿着行方向来判断每一列是否全为非零值,并将结果返回为一个全为逻辑值的行向量,可以直接简写成 all(A)。
dim等于2时表示沿着列方向判断每一行是否全为非零值,并将结果返回为一个全为逻辑值的列向量。
例题:请随机生成一个100行3列的矩阵,用来记录学生的考试成绩:矩阵每
一行代表一名同学,每一列代表一门科目的成绩,矩阵中的每个元素都是区间
[50,100]内的随机整数。
(1)请指出哪些同学挂科了,至少有一门科目没过60分就算挂科。要求返回
一个包含100个元素的逻辑向量,元素为逻辑值1的位置对应的同学挂科了。
any(A<60,2) %最后得到列向量
(2)这三门科目中是否存在科目没有人挂科(所有同学的这一门科目的成绩都
高于60分)。要求返回一个包含3个元素的逻辑向量,元素为逻辑1的位
置对应的科目表示没有人挂科。
all(A>=60,1)
find


v是把里面所有非零值提出来做一个数组
练习
请随机生成一个100行3列的矩阵,用来记录学生的考试成绩:矩阵每一行代
表一名同学,每一列代表一门科目的成绩,矩阵中的每个元素都是区间[50,100]
内的随机整数。
(1)找出恰好挂了两门科目的同学的编号。
(2)找到总分超过260分的同学的编号。
res1=find(sum(A<60,2)==2) %得到线性索引值
res2=find(sum(A,2)>260)
五、结构基础
1.条件结构
if-elseif-else-end

例题
if和elseif后面的表达式也支持其他运算,例如算术运算,其计算结果可以是一
个数值常数,不一定非要是逻辑值1或者0。如果 if和elseif后面表达式的计
算结果为非零数值,就会被当成逻辑值1;如果计算结果为数值零,则会被当
成逻辑值0.
如果后面是个矩阵的话 只有矩阵中所有元素均不为0才会被看做逻辑值1
if的嵌套
每个if都要有对应的end
%%
clear;
clc;
a=10;
b=12;
c=8;
if(a>b)if(a>c)res=a;elseres=c;end
elseif(b>c)res=b;elseres=c;end
end
switch-case-owtherwise-end

例题
a=randi(4)
switch acase 1disp("spring");case 2disp("spring");case 3disp("autumn");otherwisedisp("winter");
end
2.循环结构
for-end

%%
clear
clc % for i=1:5
% disp(i+2)
% end%遍历A矩阵中每一列
A=randi([-3,3],2,3)
for(i=A)i
end
for循环次数取决于向量或矩阵中有多少列
例题
例题:不使用sum 函数,计算行向量x中所有元素的和。
%1-6的加和
x=1:6 %可以这么表示
res=0
for i=xres=res+i
end
例题:计算从公元1年到公元9999年间,有多少个闰年。闰年的判读条件是年
份能够被4整除,但不能被100整除,或者年份能够被400整除。
%%
clear;
clc
num=0;
for i=1:9999if(mod(i,4)==0) && (mod(i,100)~=0) || (mod(i,400)==0)num=num+1;end
end
num
while-end

例题
例题:根据斐波那契数列的递推公式,求数列中第一个大于99999的元素。
F(1)=1,F(2)=1
F(n)=F(n-1)+F(n-2),n ≥3
%%
f(1)=1;
f(2)=1;
n=2;
while f(n)<99999n=n+1;f(n)=f(n-1)+f(n-2);
end
n
一个无限循环,在命令行窗口中按下快捷键Ctr+C来中断程序的运行。
while 后面表达式的计算结果不一定非得是逻辑值 1或0。如果表达式的计算结果是一个数值常数,则只有当这个常数为非零值时循环才会进行,
关键字:break和continue
break和continue只能与for循环或while循环一同使用
break关键字用于终止执行for或while循环。实际使用中,当满足某个
条件时,我们会使用break立即退出循环。这在找到所需结果后立即退
出循环的场景非常有用。
continue关键字用于跳过循环的当前迭代,然后继续下一次迭代。实际
使用中,当满足某个条件时,continue将跳过当前循环迭代的剩余部分
然后继续进行下一次迭代。这对于在某些情况下跳过特定的迭代非常
用,而不必完全退出循环。
例题
例题:输出1至10中所有的奇数。
for i=1:10if mod(i,2)==0continue;elsedisp(i)end
end
例题:质数(Prime number),又称素数,指在大于1的自然数中,除了1和
该数自身外,无法被其他自然数整除的数(也可定义为只有1与该数本身两个
正因数的数)。给定任意一个大于100的自然数n(例如n=135389),请判断
n是否为质数。
%%
clear
clc
n=135389;
flag=0;
for i=2:n-1if mod(n,i)==0 %不是质数flag=1;break;end
end
if(flag==1)disp("是质数")
elsedisp("不是")
若存在循环的嵌套,break和continue仅在调用它的循环主体中起作用。即break仅从它所发生的循环中退出,continue仅跳过它所发生的循环体内的剩余语句。
练习
步骤1:选择函数零点所在的初始区间[a,b],确保f(a)×f(b)<0。
步骤2:计算区间的中点c=(α + b)/2,并计算函数在c处的值f(c)。
步骤 3:如果f(c)的值恰好等于零,或者f(c)的绝对值小于某个给定的误差阈值,那么c
就可以当成零点,迭代结束。
步骤4:如果f(c)与零的差异较大,那么需要根据f(c)的正负号,将原来包含零点的区间
[a,b]更换为[α,c]或[c,b],确保零点仍然在新的区间内(例如:f(a)×f(c)<0则更换为[a,c])。
步骤5:重复步骤2到4,直到找到零点或者达到所需的精度停止迭代。
下面看一个具体的题目:函数f(x)=x²-8x²+x-5,f(x)在区间[6,10]严格递增且
f(6)<0,f(10)>0,请用二分搜索法求零点x。(f(xo)和0的误差控制在1e-8内即可)。
%%
clear
clc
a=6;b=10;
eps=1e-8; %误差阈值
while 1c=(a+b)/2;fc=c^3-8*c^2+c-5;if abs(fc)<epsbreakendfa=a^3-8*a^2+a-5;if fa*fc<0b=c;elsea=c;end
end
c
六、自定义函数
m文件定义函数
函数基本结构
函数调用
定义完的函数保存为同函数名的m文件,放置在Matlab的当前路径之下,然后
就和使用Matlab自带的函数一样,直接在命令窗口或程序代码中使用该函数就
是调用它了。
函数调用的一般格式为:
[输出实参表]=函数名(输入实参表)
函数中遇return语句时,将退出函数体,此函数调用结束;
函数体里面也可以定义一个或几个函数,称为子函数;注意:子函数只能存在于主函数体内,不独立存在;子函数在主函数体内的位置可以任意,不影响使用;子函数只能被主函数以及其他位于同一主函数体下的子函数调用;
在调用函数时,Matlab用两个永久变量nargin和nargout分别记录调用该函数时的输入实参和输出实参的个数。
写完的.m函数及调用:
function[max,min]=max_min_values(x)
%max 和min表示返回值
%max_min_values是函数名也得是.m文件的名字
% X是输入变量
max=subfunc_max(x);
min=subfunc_min(x);
%subfunc是自己定义的两个函数
function res=subfunc_max(x)
x1=sort(X,'desend'); %对向量x进行重排(从大到小)得到x1
res=x1(1);
endfunction res=subfunc_min(x)
x2=sort(X); %对向量x进行重排(升序)得到x2
res=x2(1);
endend
clear
clc
X=1:20;
[max,min]=max_min_values(X);
max
min
匿名函数
匿名函数是不存储在程序文件中,数据类型是function_handle的变量相关的函
数。代替“将函数编写为单独的㎡-文件”,并且效率比更高。
基本格式:
f=@(参数1,参数2,..)函数表达式


双层匿名函数

练习
这个解答很复杂 没听懂
%%
clear
clc
f=@(a)@(x)exp(x)+x^a+x^sqrt(x)-100;
A=0:0.1:2;x=@(a)fzero(f(a),4); %x(a)
X=@(A)arrayfun(@(a) x(a),A);
Y=X(A)
七、常用函数

abs取绝对值
mod取余
sqrt开方
exp e为底指数
log 实际上是ln
log2 log10
round
三角学 (弧度单位和度单位所用函数不一样)
isempty函数
如果 A为空数组[],isempty(A)返回逻辑值 1(true),否则返回逻辑值0
(false)。length(A)==0 的返回结果和 isempty(A)的返回结果一样,MATLAB 推荐大家使用后者判断A是否为空数组[],后者的运行效率更高。
例题:判断常数×是否是数组A中的某个元素,如果是则返回逻辑值1,不是则返回逻辑值0。
%%
clear
clc
A=[1:9];
x=10;
res=~isempty(find(A==x))
meshgrid函数

%%
x=0:4;
y=0:5;
[xx,yy]=meshgrid(x,y)
%在二维平面上计算二维函数x^2+y^2的值
z=xx.^2+yy.^2
rng函数
rng函数可用来设置随机数种子,这样能生成可重复的随机数。
使用随机数生成函数(例如 rand,randi等)之前,使用rng(seed)命令设置随机数种
子,这样能保证生成的随机数被固定下来。设置不同的随机数种子生成的随机
数通常都不相同。
拓展:每次重新启动MATLAB时,随机数生成器均复位到相同的状态,这样使
用生成随机数的命令会返回相同的结果。我们可以使用rng(shuffle")命令,它
可以根据当前的时间使用不同的种子重新设定生成器的种子,这样能避免重复
生成相同的随机数。
ismember函数
八、特殊函数(帮助中心直接搜即可)
特殊函数是一组在实际应用中经常出现的著名数学函数。可以用它们来计算贝
塞尔函数、beta函数、gamma函数、误差函数、椭圆积分等。
函数的详细信息:NISTDigitalLibraryofMathematicalFunctions
九、二维图形绘制
基本绘图函数
plot函数
plot(x,y)
创建Y中数据对X中对应值的二维线图。
要绘制由线段连接的一组坐标,请将X和Y指定为相同长度的向量。


要在同一组坐标区上绘制多组坐标,请将X或Y中的至少一个指定为矩阵。
%当X和Y为矩阵时
t=0:0.01:2*pi; %中间的步长大小会影响plot函数的光滑度
%x为n行三列矩阵 其中每个元素均为t
t=t.';%将t转置为列向量
%因为plot(x,y)当xy为同样大小矩阵时 以x和y他们对应的列元素
%分别为横纵坐标绘制曲线
%所以我想让我的x y矩阵均为n行3列大小
%最终会得到三条曲线(曲线条数==列数)
x=[t,t,t];
y=[sin(t),sin(2*t),sin(0.5*t)];
plot(x,y);
plot(X,Y,LineSpec)
使用指定的线型、标记和颜色创建绘图。
plot(X1,Y1,...,Xn,Yn)
在同一组坐标轴上绘制多对X和Y坐标。此语法可替代将坐标指定为矩阵的形式。
补充函数:linspace
%%
%plot(X1,Y1,...,Xn,Yn)x1=linspace(0,2*pi,10);
x2=linspace(0,2*pi,20);
x3=linspace(0,2*pi,200);
y1=sin(x1);
y2=sin(x2)+2;
y3=sin(x3)+4;
plot(x1,y1,x2,y2,x3,y3);

plot(x1,Y1,LineSpec1,..,Xn,Yn,LineSpecn)
可为每个 x-y 对组指定特定的线型、标记和颜色。您可以对某些x-y对组指定LineSpec,而对其他对组省略它。例如,plot(x1,Y1,"o",x2,Y2)对第-一个x-y对组指定标记,但没有对第二个对组指定标记。
fplot函数
plot不知道函数表达式 描点且点与点之间由折线连接 fplot能克服此缺点
fplot(f)
在默认区间[-55](对于×)绘制由函数y=f(x)定义的曲线。
fplot(f,xinterval)
将在指定区间绘图。将区间指定为[xminxmax]形式的二元素向量。
%%
clear
clc
%fplot(f,xinterval)
fplot(@(x)sin(1./x),[0,0.2])
%x是向量用点除

fplot(funx,funy)
在默认区间[-5,5](对于t)绘制由×=funx(t)和y=funy(t)定义的曲线。
fplot(funx,funy,tinterval)
将在指定区间绘图。将区间指定为[tmintmax]形式的二元素向量。
fplot(__,LineSpec)
指定线型、标记符号和线条颜色。例如,‘-r'绘制一根红色线条。在上述
语法中的任何输入参数组合后使用此选项。
对数坐标图semilogx(X,Y)
在×轴上使用以10为底的对数刻度、在y轴上使用线性刻度来绘制×和y坐标。
·要绘制由线段连接的一组坐标,请将×和Y指定为相同长度的向量。
·要在同一组坐标区上绘制多组坐标,请将×或Y中的至少一个指定为矩阵。
semilogx(x,Y,LineSpec)使用指定的线型、标记和颜色创建绘图。

极坐标图
polarplot(theta,rho)在极坐标中绘制线条,由theta表示弧度角,rho表示每个点的半径值。
输入必须为长度相等的向量或大小相等的矩阵。如果输入为矩阵,polarplot将绘制rho的列对
theta的列的图。也可以一个输入为向量,另一个为矩阵,但向量的长度必须与矩阵的一个维度相
等。
polarplot(theta,rho,LineSpec)设置线条的线型、标记符号和颜色。

条形图
bar(y)创建一个条形图,y中的每个元素对应一个条形。
·要绘制单个条形序列,请将y指定为长度为m的向量。这些条形沿×轴从1到m依次放置。
·要绘制多个条形序列,请将y指定为矩阵,每个序列对应一列。
bar(x,y)在×指定的位置绘制条形。

直方图
histogram(x)基于×创建直方图。histogram函数使用自动分bin算法,然后返回均匀宽度
的bin,这些bin可涵盖×中的元素范围并显示分布的基本形状。histogram将bin显示为矩
形条,这样每个矩形的高度就表示bin中的元素数量。
histogram(X,nbins)指定bin的数量。
例题:对分类为25个等间距bin的1,000个随机数绘制直方图。求bin计数。

饼状图


散点图



矢量类图形


图形属性设置
线型、标记和颜色
指定为包含符号的字符串标量或字符向量。符号可以按任意顺序显示。例"--
or”是带有圆形标记的红色虚线。
不需要同时指定所有三个特征(线型、标记和颜色)。例如,如果忽略线型,
只指定标记,则绘图只显示标记,不显示线条。
线形

标记

颜色

图形标注
(1)title(图形标题)
(2)xlabel(x轴说明)
(3)ylabel(y轴说明)
(4)text(x,y,图形说明)
(5) legend(图例1,图例2,..)
坐标控制
(1)axis函数
axis([xmin,xmax,ymin,ymax,zmin,zmax])指定当前坐标区的范围。
axis的其他用法
-axis equal:横纵坐标轴采取等长刻度
-axis square:产生正方形坐标系(默认为矩形)
-axis auto:使用默认设置
-axis off:取消坐标轴
-axis on:显示坐标轴
(2)给坐标系加网格和边框
grid on:控制显示网格线
grid off:控制不显示网格线
grid:用于在两种状态之间进行切换
程序中没有grid命令,默认是无网格线
十、三维图形绘制
三维曲线
plot3和fplot3
plot3(x,y,z)
例题:绘制空间的螺旋线,其参数方程为:
x=sint+tcost,
y=cost-tsint,
z=t

plot3(x1,yl,z1,x2,y2,z2,..,xn,yn,zn)
对于plot3函数来讲,它的参数x,y,z不止可以是一维数组
参数x、y、z是同型矩阵时,以x、y、z对应列元素绘制曲线,曲线条数等于
矩阵列数。
参数x、y、z中有向量,也有矩阵时,向量的长度与矩阵相符。
fplot3(funx,funy,funz,tlims)
funx、funy、funz代表定义曲线x、y、z坐标的函数,通常采用函数句柄的形式。
tlims为参数函数自变量的取值范围,用二元向量[tmin,tmax]描述,默认为[-5,5],
与fplot是几乎完全一致的。
三维曲面
十一、句柄、窗口控制

相关文章:
【matlab基本使用笔记】
ctrl a i 代码格式化 fzero求非线性函数的根 arrayfun将函数应用于每个数组元素 format long长格式输出 format long g取消科学计数法 linspace logspace 一、界面使用 1.创建matlab脚本 利用.m后缀的脚本文件(又称为m文件)编程: 点击…...
实名制-网络平台集成身份证实名认证接口/身份证查询-PHP
在当今数字化快速发展的时代,线上平台的安全性和用户体验成为了衡量其成功与否的关键因素。其中,身份证实名认证接口的集成显得尤为重要,它不仅为用户提供了更加安全、可靠的网络环境,同时也增强了平台的信任度和合规性。 对于任…...
机器学习--python基础库之Matplotlib (1) 超级详细!!!
机器学习--python基础库Matplotlib 机器学习--python基础库Matplotlib0 介绍1 实现基础绘图-某城市温度变化图1.1绘制基本图像1.2实现一些其他功能 2 再一个坐标系中绘制多个图像3 多个坐标系显示-plt.subplots(面向对象的画图方法)4 折线图的应用场景 机器学习–python基础库M…...
Android 中实现 PDF 预览三种方式
目录 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上) 步骤:2. 使用第三方库 MuPDF步骤:3. 使用第三方库 PdfiumAndroid步骤: 1. 使用第三方库 PdfRenderer(适用于 Android 5.0 及以上)…...
10. k8s二进制集群之Kube Scheduler部署
在开始之前需要准备什么?创建kube-scheduler证书请求文件【即证书的生成⓵】根据上面证书配置文件生成kube-scheduler证书【即证书的生成⓶】创建与关联kube-scheduler配置文件(为后面生成系统服务做准备)创建kube-scheduler服务配置文件【准备系统服务⓵】创建kube-schedul…...
bat脚本实现自动化漏洞挖掘
bat脚本 BAT脚本是一种批处理文件,可以在Windows操作系统中自动执行一系列命令。它们可以简化许多日常任务,如文件操作、系统配置等。 bat脚本执行命令 echo off#下面写要执行的命令 httpx 自动存活探测 echo off httpx.exe -l url.txt -o 0.txt nuc…...
一文解释nn、nn.Module与nn.functional的用法与区别
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀零基础入门PyTorch框架_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 …...
Unity VideoPlayer播放视屏不清晰的一种情况
VideoPlayer的Rnder Texture可以设置Size,如果你的视屏是1920*1080那么就设置成1920*1080。 如果设置成其他分辨率比如800*600会导致视屏不清晰。...
Docker 数据卷(Volume)详细介绍
Docker 数据卷(Volume)详细介绍 1. 什么是 Docker 数据卷? Docker 数据卷(Volume)是一种用于 持久化数据 和 容器间数据共享 的机制。由于容器的存储是临时的,容器删除后其中的数据会丢失,因此…...
【玩转全栈】--创建一个自己的vue项目
目录 vue介绍 创建vue项目 vue页面介绍 element-plus组件库 启动项目 vue介绍 Vue.js 是一款轻量级、易于上手的前端 JavaScript 框架,旨在简化用户界面的开发。它采用了响应式数据绑定和组件化的设计理念,使得开发者可以通过声明式的方式轻松管理数据和…...
揭秘区块链隐私黑科技:零知识证明如何改变未来
文章目录 1. 引言:什么是零知识证明?2. 零知识证明的核心概念与三大属性2.1 完备性(Completeness)2.2 可靠性(Soundness)2.3 零知识性(Zero-Knowledge) 3. 零知识证明的工作原理4. 零…...
力扣 239.滑动窗口最大值
思路 滑动窗口 遍历 解题思路 基本思路:使用滑动窗口法遍历数组,动态维护当前窗口的最大值。 特殊情况:该方法有一个缺陷,如果出窗口的元素是当前窗口的最大值max时,接下来的窗口中的最大值就无法确定了,所…...
堆的实现——堆的应用(堆排序)
文章目录 1.堆的实现2.堆的应用--堆排序 大家在学堆的时候,需要有二叉树的基础知识,大家可以看我的二叉树文章:二叉树 1.堆的实现 如果有⼀个关键码的集合 K {k0 , k1 , k2 , …,kn−1 } ,把它的所有元素按完全⼆叉树…...
【3】高并发导出场景下,服务器性能瓶颈优化方案-文件压缩
使用EasyExcel导出并压缩文件是一种高效且常见的解决方案,尤其适用于需要处理大量数据的场景。 1. 导出多个Excel文件并压缩成ZIP文件的基本流程 (1)数据准备:从数据库或其他数据源获取需要导出的数据,并将其存储在Ja…...
Ubuntu20.04 本地部署 DeepSeek-R1
一、下载ollama 打开 ollama链接,直接终端运行提供的命令即可。如获取的命令如下: curl -fsSL https://ollama.com/install.sh | sh确保是否安装成功可在终端输入如下命令: ollama -v注意: 如遇到Failed to connect to github.…...
2025年2月6日笔记
第 12 届蓝桥杯 C 青少组中 / 高级组选拔赛( STEMA ) 2020 年 11 月 22 日 真题第一题 解题思路: 第一:因为有整数集合的求和字样(所以用for循环来做) 第二:题中让我们累加1到N,所…...
Linux: 网络基础
1.协议 为什么要有协议:减少通信成本。所有的网络问题,本质是传输距离变长了。 什么是协议:用计算机语言表达的约定。 2.分层 软件设计方面的优势—低耦合。 一般我们的分层依据:功能比较集中,耦合度比较高的模块层…...
CSS 背景与边框:从基础到高级应用
CSS 背景与边框:从基础到高级应用 1. CSS 背景样式1.1 背景颜色示例代码:设置背景颜色 1.2 背景图像示例代码:设置背景图像 1.3 控制背景平铺行为示例代码:控制背景平铺 1.4 调整背景图像大小示例代码:调整背景图像大小…...
GnuTLS: 在 pull 函数中出错。 无法建立 SSL 连接。
提示信息 [root@localhost ~]# wget https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz --2025-02-06 12:45:34-- https://download.docker.com/linux/static/stable/x86_64/docker-27.5.1.tgz 正在解析主机 download.docker.com (download.docker.…...
ES6 const 使用总结
1. 声明不可变性 1.1 基本类型的不可变性 // 基本类型声明后不能修改 const name John; name Jane; // TypeError: Assignment to constant variableconst age 25; age 26; // TypeError: Assignment to constant variableconst isValid true; isValid false; // Ty…...
大学资产管理系统中的下载功能设计与实现
大学资产管理系统是高校信息化建设的重要组成部分,它负责记录和管理学校内所有固定资产的信息。随着信息技术的发展,下载功能成为提高资产管理效率的关键环节之一。 系统架构的设计是实现下载功能的基础。一个良好的系统架构能够确保数据的高效传输和存储…...
【华为OD机试python】日志采集系统【 E卷 | 2023 Q1 |100分】
目录 题目描述 输入描述 输出描述 示例1 输入输出示例仅供调试,后台判题数据一般不包含示例 说明 示例2 输入输出示例仅供调试,后台判题数据一般不包含示例 说明 解题思路 考点 代码 题目描述 日志采集是运维系统的的核心组件。日志是按行生成,每行记做一条,由采…...
园区网设计与实战
想做一个自己学习的有关的csdn账号,努力奋斗......会更新我计算机网络实验课程的所有内容,还有其他的学习知识^_^,为自己巩固一下所学知识。 我是一个萌新小白,有误地方请大家指正,谢谢^_^ 文章目录 前言 这个实验主…...
DeepSeek-R1 本地电脑部署 Windows系统 【轻松简易】
本文分享在自己的本地电脑部署 DeepSeek,而且轻松简易,快速上手。 这里借助Ollama工具,在Windows系统中进行大模型部署~ 1、安装Ollama 来到官网地址:Download Ollama on macOS 点击“Download for Windows”下载安装包&#x…...
git进阶--5---git reset 和 git revert 的区别与联系
git进阶–5—git reset 和 git revert 的区别与联系 1. 相同点 都是对版本做出一些改变 2. 不同点 git reset 是进行版本回退,根据不同的参数,是定是否复原索引和工作区git revert 是撤销上一次的提交,不会改变过去的历史,安全…...
AI绘画:解锁商业设计新宇宙(6/10)
1.AI 绘画:商业领域的潜力新星 近年来,AI 绘画技术以惊人的速度发展,从最初简单的图像生成,逐渐演变为能够创造出高度逼真、富有创意的艺术作品。随着深度学习算法的不断优化,AI 绘画工具如 Midjourney、Stable Diffu…...
单硬盘槽笔记本更换硬盘
背景 本人的笔记本电脑只有一个硬盘槽,而且没有M.2的硬盘盒,只有一个移动硬盘 旧硬盘:512G 新硬盘:1T 移动硬盘:512G 参考链接:https://www.bilibili.com/video/BV1iP41187SW/?spm_id_from333.1007.t…...
保姆级教程:利用Ollama与Open-WebUI本地部署 DeedSeek-R1大模型
1. 安装Ollama 根据自己的系统下载Ollama,我的是Linux,所以我使用如下命令进行下载安装: curl -fsSL https://ollama.com/install.sh | sh2. 安装Open-WebUI 使用 Docker 的方式部署 open-webui ,使用gpu的话按照如下命令进行 …...
机器学习模型--线性回归、逻辑回归、分类
一、线性回归 级别1:简单一元线性回归(手工实现) import numpy as np import matplotlib.pyplot as plt# 生成数据 X np.array([1, 2, 3, 4, 5]) y np.array([2, 4, 5, 4, 5])# 手动实现梯度下降 def gradient_descent(X, y, lr0.01, epo…...
使用scoop 下载速度慢怎么办
在国内使用 Scoop 下载速度慢是一个常见问题,主要是因为 Scoop 默认的软件源(bucket)和下载服务器通常位于国外。以下是一些提高下载速度的方法: 1. 更换 Scoop 镜像源(Bucket 镜像): 原理&…...











