matlab学习笔记(流程控制结构、函数、二维图形的绘制、三维图形绘制)

流程控制结构

循环结构

for 循环结构

for i = v, loop program body, end

其中v是一个向量,循环时每次从v中去一个数值,直到v向量中所有量都被取完了。

while 循环结构

while(condition)
	loop structure body,
end

测试程序运行时间可以用,tictoc语句

条件转移结构

if (condition1)
	statement group 1
elseif (condition2)
	statement group 2
else 
	statement group 3
end

开关结构

switch switch_expression
case expression 1, staements 1
case {expression 2, expression 3, ... , expression m}, statement 2
......
otherwise, statements n
end

函数

函数的基本格式:

function [outputArg1,outputArg2]=function_name(inputArg1,inputArg2)
% UNTITLED Summary of this function goes here
% Detailed explanation goes here
outputArg1 = inputArg1;
outputArg2 = inputArg2;
end

narginnargout:检测输入和返回变量的个数。
判断一个是否是非负整数: abs(n - floor(n))>eps|n<0

二维图形的绘制

一般二维图形绘制

plot(x,y)

分段函数的绘制方法:互斥条件
可以使用点乘的形式来绘制互斥条件的分段函数。
例:
y = { 1.1 s i g n ( x ) , ∣ x ∣ > 1.1 x , ∣ x ∣ ⩽ 1.1 y=\begin{cases} 1.1sign(x), |x|>1.1\\ x, |x|\leqslant1.1 \end{cases} y={1.1sign(x),x>1.1x,x1.1

>> x = [-2:0.02:2];
>> y = 1.1*sign(x).*(abs(x)>1.1)+x.*(abs(x)<=1.1);
>> plot(x,y)

改变曲线的性质:
plot(x, y, 'option 1')
line type: ‘-’ , ‘–’ , ‘:’ , ‘-.’
colour::b, g, m, w, c, r, y
marks::’*’ , ‘.’ , ‘x’ , ‘v’ , ‘^’ , ‘>’
可以通过get()、set()来获取和更改对象属性
如果遇到两条曲线的幅值相差悬殊,可以调用双纵轴绘制函数plotyy()

特殊二维图形绘制

  1. 多子图:subplot (m,n,k) 一个窗口划分成mn个小块,每个小块存放一个子图,k是子图的编号。 编号规则是: 从左到右边,从上到下依次编号。

  2. 双纵坐标函数plotyy
    在Matlab中,如果需要绘制出具有不同纵坐标标度的两个图形,可以使用plotyy函数,它能把具有不同量纲,不同数量级的两个函数绘制在同一个坐标中,有利于图形数据的对比分析。使用格式为:plotyy(x1,y1,x2,y2)
    x1,y1对应一条曲线,x2,y2对应另一条曲线。横坐标的标度相同,纵坐标有两个,左边的对应x1,y1数据对,右边的对应x2,y2。

  3. 极坐标图
    polar函数用来绘制极坐标图,调用格式为:
    polar(theta,rho,option)
    其中,theta为极坐标极角,rho为极径,option的内容和plot函数相似。

  4. 对数坐标图
    在实际应用中,经常用到对数坐标,Matlab提供了绘制对数和半对数坐标曲线的函数,其调用格式为:
    semilogx(x1,y1,z1,option1,x2,y2,z2,option2,...)
    semilogy(x1,y1,z1,option1,x2,y2,z2,option2,...)
    loglog(x1,y1,z1,option1,x2,y2,z2,option2,...)

三维图形绘制

plot3(x1,y1,z1,option1,x2,y2,z2,option2,...)
绘制三维轨迹图:comet3(x,y,option)
例:

>> t = 0:0.1:2*pi;
>> x = t.^3.*sin(3*t).*exp(-t);
>> y = t.^3.*cos(3*t).*exp(-t);
>> z = t.^2;
>> plot3(x,y,z)
>> grid

在这里插入图片描述

>> stem3(x,y,z);
>> hold on;
>> plot3(x,y,z),grid;
>> hold off
>> grid
>> figure;
>> grid
>> comet3(x,y,z)

hold on,保持上一张图并在此基础上绘制。
在这里插入图片描述

三维曲面绘制

>> [x,y] = meshgrid(-3:0.1:3,-2:0.1:2);
>> z = (x.^2-2*x).*exp(-x.^2-y.^2-x.*y);
>> mesh(x,y,z)
>> figure
>> surf(x,y,z)

先用meshgrid()创建一个平面x,y范围
mesh绘制3d图,surf绘制表面涂
在这里插入图片描述
在这里插入图片描述

参数方程绘制(Mobius带)

syms u v;
x=cos(u)+v*cos(u)*cos(u/2);
y=sin(u)+v*sin(u)*cos(u/2); 
z=v*sin(u/2); 
ezsurf(x,y,z,[0,2*pi,-0.5,0.5])

参数方程使用ezsurf绘制
ezsurf (fx,fy,fz,[um,uM,vm,vM])

球的绘制

>> subplot(2,2,1)
>> [x,y,z]=sphere(10);
>> surf(x,y,z)
>> subplot(2,2,2)
>> [x,y,z]=sphere(20);
>> surf(x,y,z)
>> subplot(2,2,3)
>> [x,y,z]=sphere(40);
>> surf(x,y,z)
>> subplot(2,2,4)
>> [x,y,z]=sphere(80);
>> surf(x,y,z)

在这里插入图片描述
绘制的球半径默认为1,如果要设置绘制的球的半径和圆心如下:
x1 = Rx+ox
y1 = R
y+oy
z1 = R*z+oz
[x1,y1,z1] = sphere(20)

绘制柱面

>> z0=-1:0.1:3;
>> r=exp(-z0.^2/2).*sin(z0);
>> [x,y,z]=cylinder(r); z=-1+4*z; 
>> surf(x,y,z)

其中z = -1+4*z是对生成的柱面进行延展以达到需要的坐标范围,因为3D图默认0-1
在这里插入图片描述

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值