### matlab

matlab

@author: gr

@date: 2014-03-10

@email: forgerui@gmail.com

一、common

1. 使用mex编译C语言

mex -c hello1.c
mex -c hello2.c
mex -O main.c hello1.obj hello2.obj

二、function

1. prctile

求分位数:b = Np + 0.5
如:求a=[1:5]的50分位数,b = prctile(a, 50), 可得b=3,计算如下:

b = 5 * 0.5 + 0.5 = 3

2. cat

  • cat(2, A, B)相当于[A, B];
  • cat(1, A, B)相当于[A; B].

3. cell

  • X= C(s)使用这种"()"形式的返回的是cell类
  • X = C{s}使用这种"{}"形式的返回的是cell中的内容
  • A{1,1}(2,3:end)访问的是A中的第一个cell里面内容的第2行的第三个元素以后的所有元素
  • A{1,3}.name访问的是A中的A{1,3}cell里面结构的name值

4. tic, toc

startT = tic
toc(startT)

5. cumsum

  • 如果A是一个向量, cumsum(A) 返回一个向量,该向量中第m行的元素是A中第1行到第m行的所有元素累加和;
  • 如果A是一个矩阵, cumsum(A) 返回一个和A同行同列的矩阵,矩阵中第m行第n列元素是A中第1行到第m行的所有第n列元素的累加和;

6. regexp

S = regexp('hello.c', '.', 'split');
filename = S{0};

7. find

index = find(I); //返回I中不为0的索引值
[i, j, v] = find(I > 5); //返回行i,列j,以及I(i, j)对应的值

8. exits

% 判断文件是否存在
if (~exits('trK.mat', 'file'))
% 判断变量是否存在
if (~exits('trK', 'var'))

9. isfield

%判断结构体中是否含有某成员

10. uigetfile

% 选择文件夹
data_path = uigetdir('./');
% 选择文件
[filename pathname] = uigetfile({'.jpg;.tif;.png;.gif', 'All Image Files'; '.', 'All Files'}, '选择一幅图片');

11. diag

% 1. 获取对角线上元素值组成一列,如果不是方阵,则以少的维数为准
> a = rand(5, 5)

a =

0.8147 0.0975 0.1576 0.1419 0.6557
0.9058 0.2785 0.9706 0.4218 0.0357
0.1270 0.5469 0.9572 0.9157 0.8491
0.9134 0.9575 0.4854 0.7922 0.9340
0.6324 0.9649 0.8003 0.9595 0.6787

> b = diag(a)

b =
0.8147
0.2785
0.9572
0.7922
0.6787

% 2. 利用列组成一个对角矩阵, diag(b, k)

> c = diag(b, 0) % k > 0,则为主对角线上方一条对角线; 反之,k < 0

c =
0.8147 0 0 0 0
0 0.2785 0 0 0
0 0 0.9572 0 0
0 0 0 0.7922 0
0 0 0 0 0.6787

12. mean

% 1. 对行求均值 mean(A, 1); mean(A)
a =

1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
> mean(a)
ans =

1 2 3 4 5

% 2. 对列求均值 mean(A, 2)

posted @ 2015-04-06 11:01  bairuiworld  阅读(219)  评论(0)    收藏  举报