Matlab(2)

发布于:2025-08-05 ⋅ 阅读:(12) ⋅ 点赞:(0)

一、Script writing

1. Fn + F5 快速执行matlab脚本

2. %% 分节符,可将matlab代码分节运行

3. 智能缩进,ctrl + A 选择程序,鼠标右键智能缩进

二、Structured programming

1.Relational Operators

~=  不等于;&& 与;| |  或

2. Flow Control

① if elseif else (函数rem()作用是取余数):

a = 3;
if rem(a,2) == 0 
    disp('even')
else
    disp('odd')
end

elseif 和 else 是可选择的,只允许 if 条件,不符合就到end:

a = 3;
if rem(a,2) == 0 
    disp('even')
end

② switch 后面是根据数值判断所属情况:

input_num = 1;
switch input_num
    case 1
        disp('is 1');
    case -1
        disp('is -1');
    case 0
        disp('is 0');
    otherwise
        disp('other value');
end

③ while

(函数prod()作用是从1连乘到n,也是n的阶乘;1e100 = 1*10^{100}, e相当于以10为底):

n = 1;
while(prod(1:n) < 1e100)
    n = n + 1;
end

④ for

for n = 1:10
    a(n) = 2^n;
end
disp(a)

for循环中添加步长后

j = 0;
for n = 1:2:10
    j=j+1;
    a(j) = 2^n;
end
disp(a)

3. Pre-allocating Space to Variable

tic 时钟开启,toc 时钟结束,a = zeros(2000,2000) ;预分配空间,运行速度更快

tic
 a = zeros(2000,2000) ;
for ii = 1:2000
    for jj = 1:2000
        a(ii,jj) = ii + jj ;
    end
end
toc

4.tips

1. clear all 清除变量;close all 清楚画图;clc 清楚命令行页面

2. 换行号 ...  ,ctrl + C 强制停止

三、User-defined function

函数文件名与函数名同名,变量之间用 .* ,以防 t 是多维度的

function  y = freebody(x0,v0,t)
    y = x0 + v0 .* t + 1/2 * 9.8 * t .* t;
end
function  [a F] = acc(v2,v1,t2,t1,m)
    a = (v2 - v1) ./ (t2 - t1);
    F = m .* a;
end

1. Function Default Variables

nargin:用于检测用户输入变量个数的内建函数,输入变量个数少于函数需要时,设置的默认值补充

varargin:用于检测用户输入数组变量长度的内建函数,不够时,可通过设置的默认值补充

varargout:用于检测函数输出数组变量长度的内建函数,不够时,可通过设置的默认值补充

2.Function Handles

名叫 创建一个名叫 f 的函数,f 类似于函数变量,被创建后,可被任意调用 

f = @(x) exp(-2 * x);
x = 0:0.1:2;
plot(x,f(x));


网站公告

今日签到

点亮在社区的每一天
去签到