一、结构化程式
0. 比较语句
< 小于
> 大于
<= 小于等于
>= 大于等于
== 等于
&& 与
~= 不等于
|| 或
1. if elseif else
a = 5;
if rem(a,2)==0 rem()是一个求余数的函数
disp("a is even"); disp()是一个打印输出的函数
elseif rem(a,2)==1
disp("a is odd");
else
disp("a is error");
end
输出:
>> Matlab01
a is odd
2. for
a=zeros(5);
for n=1:1:3
a(n)=2^n;
end
disp(a);
输出:
>> Matlab01
2 0 0 0 0
4 0 0 0 0
8 0 0 0 0
0 0 0 0 0
0 0 0 0 0
3. switch case otherwise
a=2;
switch a
case 1
disp("a = 1");
case 2
disp("a = 2");
case 3
disp("a = 3");
otherwise
disp("a is error");
end
输出:
>> Matlab01
a = 2
4. while
n=1;
while prod(1:n) < 1e100 prod(1:n)是指n! 1e100指的是1x10^100
n = n + 1;
end
disp(n);
输出:
>> Matlab01
70
5. break continue
continue和break与编程语言一样,contiune表示跳过
下面的步骤开始一次新的循环,break表示直接退出循环,
这两个命令不需要后面加end,直接嵌套在循环里面即可
6. 输出时间比较——提前给变量分配空间会提高运算速度
其中的%%号表示一个模块;MATLAB里面注释用%;tic 和 toc是MATLAB里面的时间函数,可以计时。
%%
tic
for ii = 1:1:2000
for jj = 1:1:2000
a(ii,jj) = ii + jj;
end
end
toc
%%
tic
b=zeros(2000,2000);
for ii=1:1:size(b,1)
for jj=1:1:size(b,2)
b(ii,jj)=ii+jj;
end
end
toc
输出:
>> Matlab01
时间已过 2.703345 秒。
时间已过 0.034226 秒。
>> Matlab01
时间已过 0.015400 秒。
时间已过 0.023685 秒。
二、官方函数
1.input函数
第一种:
x = input(prompt) 显示 prompt 中的文本并等待用户输入值后按 Enter 键。用户可以输入 pi/4 或 rand(3) 之类的表达式,并可以使用工作区中的变量。
如果用户不输入任何内容直接按下 Enter 键,则 input 会返回空矩阵。
如果用户在提示下输入无效的表达式,则 MATLAB 会显示相关的错误消息,然后重新显示提示。
第二种:
str = input(prompt,'s') 返回输入的文本,而不会将输入作为表达式来计算。
% input第一种用法:
% x=input(提示用户语句)
% 示例:
prompt='Please enter your number:';
x=input(prompt);
disp("x=");
disp(x);
% 输出:
>> Matlab01
Please enter your number:10
x=
10
% input第二种用法:
% x=input(提示用户语句,“s”)
% 示例:
prompt='Please enter your number:';
x=input(prompt,'s'); % 注意这里只能是‘s’,不能是"s"
disp("x=");
disp(x);
% 输出:
>> Matlab01
Please enter your number:zhangpeng
x=
zhangpeng
2. function handle
%示例:
f=@(x)exp(-2*x); %前面的@x表示输入的变量是x ,后面的exp(-2*x)是f
x=0:0.1:2;
plot(x,f(x)); %f(x)表示exp(-2*x)
输出:
三、自定义函数
1. 基础自定义函数
在自定义函数中的乘除法使用 .* 或者 ./ ;这样可以同时输入多组计算数值。但也不是必要的,如果怕出错的话,尽量还是一组一组的计算。
% 示例函数:
% function是自定义函数的声明,x是函数的返回值,freebody是函数名,括号里面是参数
function x = freebody(x0,v0,t)
x0=input('Please enter x0:');
v0=input('Please enter v0:');
t=input('Please enter t:');
x = x0 + v0 .* t + 1/2 .* 9.8 .* t^2;
% 输出:
>> freebody
Please enter x0:0
Please enter v0:0
Please enter t:10
ans =
490.0000
写完函数后要保存才可以在文档中调用:点击运行“run”或者快捷键F5即可保存,此时的名字默认为自定义函数名
2. 多输入多输出自定义函数
注意:此时必须使用 .* 和 ./ 才可以实现多输入和多输出。
% 示例:
function [sum,mean]=work(a,b,c)
sum=a+b+c;
mean=(a+b+c)./3;
% 输出:
>> [a,b]=work(10,10,10)
a =
30
b =
10
3. 对于多输入和多输出的深入理解
nargin和nargout是检验输入输出数目的内置函数
% 示例:
% nargin和nargout是检验输入输出数目的内置函数
function [a,b]=work(aa,bb,cc)
if nargin==1
disp('Just one input!');
bb=1;
cc=1;
elseif nargin==2
disp('Just two input!');
cc=1;
else
disp('Have enough number!');
end
a=aa+bb+cc;
b=(aa+bb+cc)./3;
if nargout==1
disp('Just one output!');
else
disp('Have two output!');
end
%输出:
>> [aa,bb]=work(10,10,10)
Have enough number!
Have two output!
aa =
30
bb =
10