matlab
#@author: gr#@date: 2014-03-10#@email: forgerui@gmail.com
一、common
1. 使用mex编译C语言
mex -c hello1.cmex -c hello2.cmex -O main.c hello1.obj hello2.obj
二、function
1. prctile
求分位数:b = Np + 0.5
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 = tictoc(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 < 0c = 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)