每次更新一点,慢慢增加
nargin
nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。 例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。
function y = testNargin(a,b) if nargin==0 a=0;b=0; elseif nargin==1 b=0; end y=a+b; end
相关:varargout、nargout、varargin
subs
这里subs的替换换就是元素替换
调用格式:
R = subs(S)
R = subs(S, new)
R = subs(S, old, new)
syms a b y = a*b; a = 2; b=4; subs(y); subs(y,{a, b},{2, 4}); subs(y,{a, b},{[1 2],[3,4]}); %表示矩阵对应元素相乘
没有矩阵替换后执行矩阵运算你要进行矩阵运算可以这样写
>> x=sym([0 1;-1 0]);
>> y=sym([1 -1;-2 1]);
>> x*y
repmat
repmat 即 Replicate Matrix ,复制和平铺矩阵
语法:
B = repmat(A,m,n)
B = repmat(A,[m n])
B = repmat(A,[m n p...])
corrcoef
A=corrcoef(X)后,A中每个值的所在行a和列b,反应的是原矩阵X中相应的第a个列向量和第b个列向量的相似程度(即相关系数);
A=corrcoef(f,g),其中f,g是向量(都转化为列向量),输出A是一个二维矩阵(对角元恒为1),
我们感兴趣的f和g的相关系数就存放在A(1,2)=A(2,1)上,其值在[-1,1]之间,1表示最大的正相关,-1表示绝对值最大的负相关。
var
表示方差 ,公式:sum((v - mean(v))^2) /(length(v) - 1),其中v表示向量,V表示矩阵
语法:
var(v) :表示向量的方差
var(V):每个列向量的方差,结果为行向量
cov
是以列向量为单位,算出协方差是多少,公式:COV(X,Y)=E[(X-E(X))(Y-E(Y))]
语法:
cov(x) cov(x, y) cov(x, y, 1)
norm
1、如果A为矩阵
n=norm(A)
返回A的最大奇异值,即max(svd(A))
n=norm(A,p)
根据p的不同,返回不同的值
p 返回值
1 返回A中最大一列和,即max(sum(abs(A)))
2 返回A的最大奇异值,和n=norm(A)用法一样
inf 返回A中最大一行和,即max(sum(abs(A’)))
‘fro’ A和A‘的积的对角线和的平方根,即sqrt(sum(diag(A'*A)))
2、如果A为向量
norm(A,p)
返回向量A的p范数。即返回 sum(abs(A).^p)^(1/p),对任意 1<p<+∞.
norm(A)
返回向量A的2范数,即等价于norm(A,2)。
norm(A,inf)
返回max(abs(A))
norm(A,-inf)
返回min(abs(A))
isnan
函数功能: 判断数组的元素是否是NaN。不是数,函数返值为1,否则为0。NaN是Not a Number的缩写。isnan常用来修正数组中出现非数字的情况。
在matlab中,以下情况会出现NaN:
任何关于NaN的数值运算, 如sqrt(NaN);加减法, 如(+Inf)+(-Inf);乘法, 如0乘以Inf;除法, 如0/0、Inf/Inf;Remainder,比如rem(x, y)其中y为0或x是Inf。
读取execl中的数据,如果数据中有inf的。
用xlsread读取数据后就会现在NAN。
语法格式:
TF = isnan(A)
返回一个和A尺寸一样的数组, 如果A中某个元素是NaN, 则对应TF中元素是1, 否则TF中对应元素是0。