一、matlab technique (9.17—)
1,tips
(1)
预先分配连续的存储空间,节约内存占用,提高执行效率。
——matlab中 创建空数组,空矩阵,空元胞数组
(2)
tic
......
toc
f9 (分段运行)
clear
close all
clc
find(Score<60)
(返回一维矩阵)
~isempty()
disp
(打印函数)
(3)
句尾加···换行
2,size:
row = size(A)
row = size(A,1)
column = size(A,2)
[row,column] = size(A)
%摘自http://blog.csdn.net/lqhbupt/article/details/18951311
3,Anonymous functions:
匿名函数
handle = @(arglist)anonymous_function
example :
具体用法
(1)
f=@(x,y)x^2+y^2;
f(1,2)
ans = 5
(基本)
(2)
f=@(x,y)x.^2+y.^2;
a=1:1:10;
b=10:-1:1;
f(a,b)
ans = 101 85 73 65 61 61
65 73 85 101
(输入数组)
(3)
a=1:5;
b=5:-1:1;
c=0.1:0.1:0.5;
f=@(x,y)x.^2+y.^2+c;
f(a,b)
ans = 26.1000 20.2000 18.3000
20.4000 26.5000
(包含参数)
(4)
f=@(x,y)@(a) x^2+y^+a;
f1=f(2,3)
f1 = @(a)x^2+y^+a
f2=f1(4)
f2 = 85
(多重)
定义函数,放在.m文件里
function y = sum_of_max(A)
y = sum(max(A));
5:
函数求导
diff(fun) , (一阶导数)
diff(fun, n) , (n阶导数(n是具体整数))
diff(fun,varie), (偏导数)
diff(fun, varie, n) ,(n阶偏导数)
6,元胞数组—特殊的数据结构
——参考http://blog.csdn.net/fandoudou123/article/details/41652495
组成元胞数组的元素可以是任何一种数据类型的常数或者常量,每一个元素也可以具有不同的尺寸和内存占用空间,每一个元素的内容也可以完全不同,
(1)
cell函数创建空元胞数组
a=cell(1)
% a =
% {[]}
b=cell(1,2)
%b =
% [] []
c=cell(3,3)
% c =
% [] [] []
% [] [] []
% [] [] []
(2)
大括号用于表示元胞的内容,小括号表示指定的元胞
a={'matlab',20;ones(2,3),1:10}
%a =
'matlab' [ 20]
[2x3 double] [1x10 double]
a{1,2}
%ans =
20
a(1,2)
%ans =
[20]
7,sort函数
—参照http://www.ilovematlab.cn/thread-93857-1-1.html
exp:
A = [ 3 7 5
0 4 2 ];
(1)
B = sort(A,dim)
(按数组A中指定维度dim上的元素按照升序排列。1_按列排序,2_按行)
sort(A,1)
ans =
0 4 2
3 7 5
sort(A,2)
ans =
3 5 7
0 2 4
(2)
B = sort(…,mode)
按照mode的值为指定的方向进行排列,mode可取:
‘ascend’ 升序排列(默认)。
‘descend’ 降序排列。
exp:
sort(A,1,'descend')
ans =
3 7 5
0 4 2
(3)
[B,IX] = sort(A,…)
size(IX) == size(A)
(返回索引数组IX)
B = A(IX)
(A为向量)
for j = 1:n
B(:,j) = A(IX(:,j),j);
end
B == A
(A为矩阵)
[Score index]= sort(Score);