Matlab基本语法

1、变量赋值

a = [1 2 3 ; 4 5 6 ; 7 8 9 ]    %矩阵形式赋值.
a = 1:10                        %从1到10的矩阵.
a = 1:2:10                      %固定步长为2的矩阵.
zeros(3,2)                      %三行两列的全零矩阵.
A=rand(3,3)
eye(3,3) a
= [] % 空矩阵 who % 检查工作空间的变量 whos % 检查存于工作空间变量的详细资料

2、if语句

x = 32 ; y = 86;
if x > y
    'x 大于 y'
elseif  x < y
    'x 小于 y'
elseif x == y
   ' x 等于y'
else 'error'
end

3、for循环

% for循环使用示例
a = 0;
for i = 1:1:10
    a = a + i ;
end
a

4、while循环

% while循环使用示例
num = 0; a = 5;
while a >1
    a = a/2;
    num = num + 1;
end
num

5、switch case

%示例代码
n = input('请输入一个数字: ');

switch n
    case -1
        disp('此值是-1')
    case 0
        disp('此值是0')
    case 1
        disp('此值是1')
    otherwise
        disp('其他数值')
end

6、普通函数定义

function 输出变量 = 函数名(输入变量)
    函数体
end
function [y1,...,yN] = myfun(x1,...,xM)

end

7、输入变量缺省的函数

使用nargin进行判断

out(1)
out(1,2)
out(1,2,3)
function  out(a,b,c)
    if nargin == 1
        disp(a)
    elseif nargin == 2
        disp([a,b])
    elseif nargin == 3
        disp([a,b,c])
    end
end

使用varargin

function out = my_test(x,b,varargin)
    p = inputParser;            % 函数的输入解析器
    addParameter(p,'k',1);      % 设置变量名和默认参数
    parse(p,varargin{:});       % 对输入变量进行解析,如果检测到前面的变量被赋值,则更新变量取值
    out = p.Results.k*x + b;    % 在这里定义你自己的函数计算公式
end

8、匿名函数

格式:f = @(变量列表)表达式
close all;
clc;
b=@(x)(sin(x)+cos(x)); %创建关于x的匿名函数
c=b(pi) %带入pi

d=@(x,y)(sin(x)+cos(y)) %创建x和y的匿名函数
e=d(pi,pi) %带入pi值测试

9、数据类型+数据结构

①、数值类型:整数(int8、uint8、int16、uint16、int32、uint32、int64、uint64)、浮点数(single、double(默认))、复数(a=complex(3,4)、a=3+4i)、Inf(正无穷,加负号为负无穷)、NaN(既不是实数也不是复数的值)

函数定义(标量):

a = int8(10);
b = double(20.001);

s = 'chenwen wen';
c = double(s(3)); %c=101,字符对应的ASCII

复数:

z = a+bi;

real(z):计算复数的实部 

imag(z):计算复数的虚部 

abs(z):计算复数的模 

angle(z): 以弧度为单位给出复数的幅角  

②、逻辑类型:true、false

a=3;b=0;
c=logical(a)
d=logical(b) 

③、字符和字符串类型:

a='I Love Matlab' 

④、结构体类型 

结构体(直接定义):

>> student.name = 'zhangsan';
>> student.grade = 18;
>> student.subject = {'maple','matlab','mathmatics'};
>> student.result = {87 ,89, 90};

结构体(使用struct定义):

s = struct('field1','values','field2','values',……)

⑤、向量(一维数组)

定义(下标都是从1开始):

直接赋值法:x = [1 2 3 4] %每个数据元素之间有空格或逗号
冒号法:x =a : step : b ,a,b为数组元素起止值,step为数组元素间距值,可以省略不写默认为1
等距函数生成法:x = linspace(a,b,n),a,b为数组元素起止值等分为n份,默认值是100可省略不写
对数函数生成法:x = logspace(a,b,n),a,b为数组元素起止值等分为n份,默认值是50可省略不写

访问:

x = [1 2 3 4]      %下标都是从1开始
x(2) = 2
x(1:3) = [1,2,3]   %生成子数组
x(2:end) = [2,3,4] %end表数组最后一个元素的位置
x(3:-1:1) = [3,2,1]%负数倒叙排
x(find(x>2)) = [3,4]
x([1 2 3 3 2 1]) = [ 1 2 3 3 2 1]      %对元素可重复寻访
x([1 2 ]) = [11 22]                    % x = [11 22 3 4 5]可以这样为元素赋值

⑥、矩阵(二维数组)

定义:

x = [1,2,3;4,5,6;7,8,9] %3*3矩阵

访问:

x([1,2],[3]) %表示x矩阵的第1,2行的第3列
x(:,2)       %表示所有行的第二列
x(:)         %表示转换成列向量

⑦、元胞数组:存放各种不同类型的数据

大括号创建:

A={'This is the first Cell.',[1 2;3 4];eye(3),{'Tom','Jane'}}

依此初始化创建:

B(1,1)={'This is the second Cell.'}

B =

'This is the second Cell.'

B(1,2)={5+3*i}

B =

[1x24 char] [5.0000+ 3.0000i]

B(1,3)={[1 2;3 4; 5 6]}

B =

[1x24 char] [5.0000+ 3.0000i] [3x2 double]

cell函数创建:

a=cell(4);      %4x4
a=cell(3,4);   %3x4

 

posted @ 2022-12-21 15:55  朱小勇  阅读(3183)  评论(0编辑  收藏  举报