|||
下划线显示: xlabel('B_radial');
矩阵累积求和: a=cumsum(X , n);
fsolve 的应用:
如果是方程组,则可以写为:
f=@(x,a,b)[a*x(1)^2+b*log(x(2));x(1)+x(2)]
x=fsolve(f,[1,1],[],1,1)
第一个1是x的初值,后两个1是a,b的值。
不过,可能这样更好:
x = fsolve(@(x) myfun(x,kk), x0, options);% 其中kk为传递的系数
非线性拟合:
option = optimset('TolX',1e-5,'MaxFunEvals', 1e18, 'MaxIter', 1000);
coeff = fminsearch( 'fit_sphere_r',[ x0 y0 sem_r ], option, bx, by );
coeff = fmincon( 'fit_sphere_r',[ x0 y0 sem_r ],[],[],[],[],lowb,highb,[], option, bx, by );
非线性拟合:
myfunc=inline('beta(1)*exp(-beta(2)*x)+beta(3)','beta','x');
myfunc=inline('beta(1)*exp(-( x-beta(2) ).^2/2/beta(3)^2 )+beta(4)','beta','x');
[beta,Re,j]=nlinfit(x,y,myfunc,[b10 b20 b30]);
图片转电影:
imshow(a, [10 200], 'border','tight','initialmagnification','fit' );
set (gcf,'Position',[100,100,200,200]);
axis normal;
M(cn)=getframe;
movie2avi(M, 'm2.avi', 'compression', 'None');
等分区间:x1 = linspace( -len, len, 200 );
去除面上的线条: surf(X, Y, histvalue, 'LineStyle', 'none');
设置坐标轴的字体和刻度:
set(gca,'FontSize',20);
lx = -rx :rx/2: rx;
ltx = -rx :rx/2: rx;
set( gca,'xtick',lx,'xticklabel',ltx );
排序:
B = sortrows(A)
B = sortrows(A,column)
[B,index] = sortrows(A,...)
保存高分辨率图片:
set(gcf, 'PaperPositionMode', 'Auto');
set(gcf, 'PaperType', 'USLetter');
set(gcf, 'Renderer', 'zbuffer');
print( 1, '-r300' , '-dtiff','my_test_picture300.tif' );
源代码加密
pcode fun
pcode *.m
pcode fun1fun2 ...
pcode... -inplace
快速读取tif文件
http://blogs.mathworks.com/steve/2009/04/02/matlab-r2009a-imread-and-multipage-tiffs/
fname = 'my_file_with_lots_of_images.tif';
info = imfinfo(fname);
num_images = numel(info);
for k = 1:num_images
A = imread(fname, k, 'Info', info);
% ... Do something with image A ...
end
set(gca,'XDir','reverse','YDir','reverse'); % X Y 轴颠倒
mcc -l get_thr.m dll 文件
mcc -m gui_1.m 生成可执行文件
squeeze( each_frame( i, :, : ) ) 缩小矩阵的维度,对3维以上有用;
B = reshape(A,1,[]); 矩阵的维度的随意改变,二维有效,其他不知道
tic
for k=1:100
s=sum(k);
end
toc
MATLAB调用C/C++函数的方法
http://dev.10086.cn/cmdn/bbs/viewthread.php?tid=20428
function format = get_format_from_filename(filename)
format = '';
idx = find(filename == '.');
if (~isempty(idx))
ext = filename((idx(end) + 1):end);
fmt_s = imformats(ext);
if (~isempty(fmt_s))
format = ext;
end
end
strm = RandStream('mt19937ar'); % reproducible RandStream.setDefaultStream(strm); y = randn(1000, 1); [ACF, Lags] = autocorr(y, 10); [Lags ACF ACF*var(y,1)] ans = 0 1.0000 0.9969 1.0000 0.0360 0.0359 2.0000 0.0441 0.0439 3.0000 -0.0271 -0.0271 4.0000 -0.0452 -0.0451 5.0000 -0.0173 -0.0172 6.0000 0.0456 0.0454 7.0000 -0.0136 -0.0135 8.0000 0.0332 0.0331 9.0000 -0.0356 -0.0355 10.0000 -0.0115 -0.0115
1、构造数组的方法:增量发和linspace(first,last,num)first和last为起始和终止数,num为需要的数组元素个数。
2、构造矩阵的方法:可以直接用[ ]来输入数组,也可以用以下提供的函数来生成矩阵。
ones( ) 创建一个所有元素都为1的矩阵,其中可以制定维数,1,2….个变量
zeros() 创建一个所有元素都为0的矩阵
eye() 创建对角元素为1,其他元素为0的矩阵
diag() 根据向量创建对角矩阵,即以向量的元素为对角元素
magic() 创建魔方矩阵
rand() 创建随机矩阵,服从均匀分布
randn() 创建随机矩阵,服从正态分布
randperm() 创建随机行向量
horcat C=[A,B],水平聚合矩阵,还可以用cat(1,A,B)
vercat C=[A;B],垂直聚合矩阵, 还可以用cat(2,A,B)
repmat(M,v,h) 将矩阵M在垂直方向上聚合v次,在水平方向上聚合h次
blkdiag(A,B) 以A,和B为块创建块对角矩阵
length 返回矩阵最长维的的长度
ndims 返回维数
numel 返回矩阵元素个数
size 返回每一维的长度,[rows,cols]=size(A)
reshape 重塑矩阵,reshape(A,2,6),将A变为2×6的矩阵,按列排列。
rot90 旋转矩阵90度,逆时针方向
fliplr 沿垂轴翻转矩阵
flipud 沿水平轴翻转矩阵
transpose 沿主对角线翻转矩阵
ctranspose 转置矩阵,也可用A’或A.’,这仅当矩阵为复数矩阵时才有区别
inv 矩阵的逆
det 矩阵的行列式值
trace 矩阵对角元素的和
norm 矩阵或矢量的范数,norm(a,1),norm(a,Inf)…….
normest 估计矩阵的最大范数矢量
chol 矩阵的cholesky分解
cholinc 不完全cholesky分解
lu LU分解
luinc 不完全LU分解
qr 正交分解
kron(A,B) A为m×n,B为p×q,则生成mp×nq的矩阵,A的每一个元素都会乘上B,并占据p×q大小的空间
rank 求出矩阵的刺
pinv 求伪逆矩阵
A^p 对A进行操作
A.^P 对A中的每一个元素进行操作
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-23 18:34
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社