• 2*randn(sz):0 均值,方差为 4(variance),
    • standard deviation:标准差为 2;
  • numel():returns the # of elements;
    • numel(randn(2, 3, 4)) ⇒ 24
  • fieldnames():获取其成员属性的名字(字符串形式);

    s(1,1).name = 'alice';
    s(1,1).ID = 0;
    s(2,1).name = 'gertrude';
    s(2,1).ID = 1;
    s(3, 1).age = 20;
    fieldnames(s);
    ans = 
      'name'
      'ID'
      'age'

0. meshgrid

meshgrid(获取绘制网格所需的坐标):

  • 第一个返回值逐列(列是相同的元素),重复的行数是第二个参数的长度;
  • 第二个返回值逐行(行是相同的元素),重复的列数是第一个参数的长度;
  • 第一个参数贡献列,第二个参数贡献行树;
  • 最终两个返回值的 size 要一致;
>> [x, y] = meshgrid(1:2);
x = [1, 2; 1, 2]; y = [1, 1; 2, 2];
>> [x, y] = meshgrid(1:2, 1:3);
x = [1, 2; 1, 2; 1, 2];
y = [1, 1; 2, 2; 3, 3];

1. trapz

trapezoidal numerical integration:梯形数值积分;

接口如下:

  • Q = trapz(Y)
  • Q = trapz(X,Y)
Y = [1 4 9 16 25];
Q = trapz(Y)
                    % \int x^2 dx [1, 5]
                    % 默认的阶梯形的步长为单位步长

X = 0:pi/100:pi;
Y = sin(X);
Q = trapz(X, Y)
                    % \int sin(x) dx [0, pi]
  • 该函数恰好可以用来求 AUC(area under curve)的值;

2. fliplr/flipud

  • fliplr:flip an array from left to right.
  • flipud:flip an array from up to down.
>> A = 1:5;
>> fliplr(A);
5 4 3 2 1

% 当然也可以这样
>> A(end:-1:1)

3. 多项式方程的根

Abel-Ruffini 定理已经有了定论,>= 5 次以上的多项式方程没有通用的解析解求法;

现考虑下面的多项式方程:

s6+9s5+1354s4+1352s3+121516s2+72916s+72964=0

>> p = [1, 9, 135/4., 135/2., 1215/16., 729/16., 729/64.];
>> roots(p)                     % 数值解
>> p1 = poly2sym(p);
>> solve(p1)                    % 解析解
posted on 2016-11-04 22:42  未雨愁眸  阅读(207)  评论(0编辑  收藏  举报