|||
(一)index号与行列号批量相互转化
function [i,j] = ind2ij(ind, nb_line)
i= mod(ind, nb_line); % line number
ind_ind = 1:length(ind);
end_line = find(i == 0);
if ~isempty(end_line)
i(end_line) = nb_line;
j(end_line) = ind(end_line)/nb_line;
ind_ind(end_line) = [];
end
j(ind_ind) = floor(ind(ind_ind) /nb_line)+1;
function ind = ij2ind(i, j, nb_line)
ind = (j-1)*nb_line+i;
(二)matlab绘图输出eps文件及边框
遥感数据处理中,重要一环就是结果展示和输出。
其中eps文件虽然在常用数据格式和打印数据格式中使用不在那么普遍,但是在学术文章撰写中,由于其对矢量数据的支持能力,与常规位图相比具有更好的展示效果,因此至今仍然在出版、著作中占有一席之地。
matlab作为重要的数字图像处理工具,提供了较为灵活的图像展示功能,并支持多种图像格式。
下面,总结了一种较为有效的带边框的eps文件输出方式
首先裁掉多余空白区域,并设置边框
imshow(rand(200,300).^.4, 'border', 'tight');
axis on;
axis square;
set(gca, 'linewidth', 2);
注意,这里最好不要设为小于1, 否则容易丢失右侧和底侧的边框
然后,就是eps文件输出了
saveas(figure(1), '.***.eps', 'psc2');
‘psc2’很重要,不要丢掉了。那么,存在多个figure的时候,在生成figure时,注意保存相应句柄就可以了。
(三)Matlab如何真正自如的控制legend
最近遇到一个问题,用matlab绘制一堆线和点之后,想添加一下图例,但是遇到两个新问题
第一个是,需要绘制的图例比较多,用一个句子表达起来很长很长,除了不美观之外,致命的问题是这种方法太笨;
第二个问题是,在绘图的开始,无法提前获知究竟需要画多少个图例。
x=-1:.2:1;
y(:,1)=sin(x);
y(:,2)=cos(x);
y(:,3)=y1.*y2;
y(:,4)=log(x);
y(:,5)=-log(x);
......
for i=1:n
mcolor=rand(1,3);
plot(x, y(i),'--', 'color', mcolor);
%重点解决方法在这里
mylgd{i} = ['y', num2str(i)];
end
legend(mylgd);
特别说明:本文转载自,欢迎参阅,感谢博主分享
http://blog.sciencenet.cn/home.php?mod=space&uid=662112
点滴分享,福泽你我!Add oil!
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2025-1-5 13:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社