matlab问题集总

时间:2023-03-08 22:55:38
matlab问题集总

每次更新一点,慢慢增加

nargin

nargin是用来判断输入变量个数的函数,这样就可以针对不同的情况执行不同的功能。通常可以用他来设定一些默认值,如下面的函数。 例子,函数test1的功能是输出a和b的和。如果只输入一个变量,则认为另一个变量为0,如果两个变量都没有输入,则默认两者均为0。

function y = testNargin(a,b)
if nargin==
a=;b=;
elseif nargin==
b=;
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 = ; b=;
subs(y); subs(y,{a, b},{, }); subs(y,{a, b},{[ ],[,]}); %表示矩阵对应元素相乘

没有矩阵替换后执行矩阵运算你要进行矩阵运算可以这样写

>> 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。
相关:isfiniteinfnanisinf