zoukankan      html  css  js  c++  java
  • matlab问题集总

    每次更新一点,慢慢增加

    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。
    相关:isfiniteinfnanisinf
  • 相关阅读:
    C/C++多文件之间的变量定义
    PKU POJ 2186 Popular Cows 强连通分量
    重载函数
    ZOJ 2763 Prison Break
    201357 训练赛总结
    hdu 4467 Graph 构造
    201356 训练赛总结
    201353 NEERC 2012, Eastern subregional contest
    2013512 CF 183 总结
    一道动态规划
  • 原文地址:https://www.cnblogs.com/ywl925/p/3314718.html
Copyright © 2011-2022 走看看