MATLAB常用函数

 一、size():获取矩阵的行数和列数

1、s=size(A),当只有一个输出参数时,返回一个行向量,该行向量的第一个元素时矩阵的行数,第二个元素是矩阵的列数。

2、[r,c]=size(A),当有两个输出参数时,r返回矩阵的行数,c返回矩阵的列数。

3、size(A,1/2),其中r=size(A,1)该语句返回的时矩阵A的行数,c=size(A,2) 该语句返回的时矩阵A的列数。
二、mapminmax():(归一化)通过将行最小值和最大值映射到[-1 1]来处理矩阵。

    [Y1,PS] = mapminmax(X1,YMIN,YMAX)
    [Y1,PS] = mapminmax(X1,FP)
    Y2 = mapminmax('apply',X2,PS)
    X1 = mapminmax('reverse',Y1,PS)
    dx_dy = mapminmax('dx_dy',X,Y,PS)

 1、X1是训练集待处理的矩阵,YMIN是我们期望归一化后矩阵Y每行的最小值,YMAX是我们期望归一化后矩阵Y每行的最大值。Y为归一化后的数值,PS是一种对应关系,包含数据的最大值、最小值等等,可以利用PS这个对应关系对其他数值进行归一化。

2、FP是一个结构体成员,主要是FP.ymin(相当于YMIN), FP.ymax(相当于YMAX)。1和2处理效果一样,只不过参数的带入形式不同。

3、X2是测试集待处理的矩阵,测试集的预处理方式应与训练集相同。只需将对应关系PS,apply到测试集矩阵。

4、将归一化后的Y1反转为归一化之前的数据X1。

三、mapstd():(标准化)将矩阵的每一行映射为0(默认)均值1(默认)方差的数据。

    [Y,PS] = mapstd(X,ymean,ystd)
    [Y,PS] = mapstd(X,FP)
    Y = mapstd('apply',X,PS)
    X = mapstd('reverse',Y,PS)
    dx_dy = mapstd('dx_dy',X,Y,PS)

三、evalin和eval

evalin:在指定的工作区中执行 MATLAB 表达式,此 MATLAB 函数 执行 expression,它是一个字符向量或字符串标量,包含任何有效的 MATLAB 表达式,这些表达式使用工作区 ws 中的变量。ws 的值可以为 'base' 或 'caller',以表示 MATLAB 基础工作区或调用方函数的工作区。

​
evalin可以运行不同工作区域里的Matlab任何命令:

evalin(ws, expression)

ws:工作区域(default 是base)

expression: 合法的matlab命令

 eval:将字符串转换为matlab可执行语句

 四、 MATLAB中的函数句柄及其应用

函数句柄(function handle)是MATLAB中的一类特殊的数据结构,它的作用是将一个函数封装成一个变量,使其能够像其它变量一样在程序的不同部分传递。详细解释

% 函数句柄的创建
% 方式1 : 直接加@
% 语法:fun1 = @getObjValue;

% 方式2 : str2func函数
% 语法:str2fun('函数名')
fun2 = str2func('getObjValue');

% 方式3 : 匿名函数
% 语法:@(参数列表)单行表达式
fun3 = @(x, y)x.^2 + y.^2; 

% 函数句柄的调用fun1(pi);

五、loadlibrary——将 C 共享库加载到 MATLAB

在MATLAB中调用封装的C/C++的共享库(dll文件)的解决方法https://blog.csdn.net/qq_42818011/article/details/110698067六、repmat——重复堆叠矩阵

B = repmat(A,m,n)

用于处理大矩阵,且重复堆叠时使用。将矩阵A以m行n列的形式堆叠成矩阵B中。

K>> B=repmat( [1 1;2 2],2,3)

B =

     1     1     1     1     1     1
     2     2     2     2     2     2
     1     1     1     1     1     1
     2     2     2     2     2     2

七、struct的建立

结构体的建立有两种:直接创建和使用struct函数创建。

1、直接创建:直接定义即可,可随时扩充

Student.name = 'xiaoming';
Student.age = '18';
Student.weight = '180';
 

2、使用struct函数创建:struct(字段1,属性值1,字段2,属性值2,。。。。。)

student=struct('name','xiaoming','age',18,'weight',160)

3、调用

K>> student.age

ans =

    18

4、fields:获取一个未知结构体的字段

K>> student_fields = fields(student)

student_fields =

  3×1 cell 数组

    {'name'  }
    {'age'   }
    {'weight'}

你可能感兴趣的:(MATLAB,matlab,矩阵,线性代数)