一、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'}