11.MATLAB基本编程

概述:

1  脚本M文件

 1 clear all;
 2 %设置精度
 3 format long;
 4 %定义变量
 5 n=40
 6 s=0
 7 %循环
 8 for i=1:n
 9     s=s+1/2^i;
10 end
11 s
12 format short;

2  函数M文件

 1 function y=mymax(varargin)
 2 % 任意数目的输入参数,求所有元素的最大值
 3 
 4 if length(varargin)==0
 5     disp('请输入参数!');
 6     return;
 7 else
 8     tmp=[length(varargin)];
 9 end
10 for i=1:length(varargin)
11     tmp(i)=max(varargin{i}(:));
12 end
13 y=max(tmp);

3  函数的参数传递

 1 function y=mymax12(x1,x2,x3)
 2 % 计算标量或向量的最大值
 3 
 4 if nargin==0
 5     y=NaN;
 6     disp('请输入参数!');
 7     return;
 8 elseif nargin==1
 9     y=max(x1);
10 elseif nargin==2
11     y=max(max(x1),max(x2));
12 else
13     y=max([max(x1),max(x2),max(x3)]);
14 end
 1 function [y1,y2]=mymin(x1,x2)
 2 % 计算标量或向量的最小值
 3 
 4 if nargin==1
 5     y1=min(x1);
 6     y2=y1;
 7 elseif nargin==2
 8         y1=min(x1);
 9         y2=min(x2);
10 end
11 if nargout==1
12     y1=min(y1,y2);
13 end

4  流程控制

4.1  变量

4.2  顺序结构

4.3  分支结构

4.4  循环结构

4.5  try...catch语句

5  人机交互函数

1 clear all;
2 r1=input('Do you like apple? Y/N: ','s');
3 while isempty(r1)
4     r1=input('Do you like apple? Y/N: ','s');
5 end
6 disp(r1);
7 disp('input matrix,for example:eye(5)');
8 r2=input('','s');
9 f=eval(r2)
1 clear all;
2 a=[1 2 3;2 3 4]
3 b=[4 5 3;7 8 9]
4 keyboard
5 c=a+b
 1 clear all;
 2 t=0:pi/20:2*pi;
 3 x=sin(t);
 4 figure;
 5 plot(t,x)
 6 xlabel('t');
 7 ylabel('x');
 8 hold on;
 9 for i=1:7
10     pause;
11     plot(t,sin(t+i/5));
12     hold on;
13 end
1 clear all;
2 a=[1 2 3;2 3 4];
3 b=[1 2 3;7 8 9];
4 echo on;
5 c=a+b
6 d=a-b
7 echo off;
8 e=a.*b

6  函数类型

6.1  主函数

6.2  子函数

 1 function [a,b]=mymain(x,y)
 2 % 主函数
 3 a=mysub1(x,y);
 4 b=mysub2(x,y);
 5 end
 6 
 7 function z=mysub1(x,y)
 8 % 子函数1
 9 z=x-y;
10 end
11 
12 function z=mysub2(x,y)
13 % 子函数2
14 z=x+y;
15 end
1 clear all;
2 [a,b]=mymain(3,4)
3 [x,y]=mymain(5,6)
4 help mymain
5 help mymain>mysub1
6 help mymain>mysub2

6.3  嵌套函数

6.4  私有函数

6.5  重载函数

6.6  匿名函数

原文地址:https://www.cnblogs.com/xiaochi/p/8901721.html