||
之前将数组或者矩阵保存为一个mat格式的文件,在进行load命令读取时:
s1=load('qiyipuzong.mat');
得到的s1是struct类型的数据,而我想要的是一个矩阵或者数组。
经过搜索查询,参考下面这个链接的内容
http://baike.baidu.com/link?url=k4G5EtvGr_zj_MgN2jnjxLFTM9m8hC1nYwUbCAXB3_cVwKBcpcSKMu1PuRhVlgutxhDAW9K3ehAh4M1ahRM4cq
,将命令:
s1=load('qiyipuzong.mat');
改写为:
s1=cell2mat(struct2cell(load('qiyipuzong.mat')));
得到的s1即为矩阵。
一、读取文本内容
test.txt
1 a aa aaa
2 b bb bbb
3 c cc ccc
整个文本读取
1)data = load(test.txt);%一般数据类型,可以直接使用
2)
fid = fopen(file, 'r');
data = textscan(fid, '%f %s %s %s');%属于cell类型,利用{}转换成一般类型
fclose(fid);
dt(:,1)= data{1};
dt(:,2)= data{2};
dt(:,3)= data{3};
dt(:,4)= data{4};
以行读取文本
fid = fopen(file, 'r');
while ~feof(fid)
string = fgets(fid);
str = string(1:1);
if ( str ~= '#' ) %这样做的好处,是可以注释一些行,方便数据测试
str1 = string(1:2);
str2 = string(4:6);
str3 = string(8:10);
end
end
fclose(fid);
二、画图
1)提取矢量图
uimenufcn(gcf,'EditCopyFigure')
2)修改figure格式
text(0.3,y0,['north slope=' num2str(a(2))],'FontSize',18);
ylabel('Power/(mm^2 year)','FontSize',12);
xlabel('Frequency(cycle/year)','FontSize',12);
title(st,'FontSize',15);
set(gca,'xlim',[0 col+1]);
set(gca,'ylim',[0 row]);
hold on
plot([xx xx], get(gca, 'YLim'), '-r', 'LineWidth', 3) % 红色,宽度为3
三、显示格网
grid on
只显示某一个方向的格网
set(gca,'Xgrid','on');
关闭set(gca,'Xgrid','off');
四、subplot之间的间隔问题
figure;set (gcf,'Position',[100,100,900,600], 'color','w');
%% main
fig_hei=0.28;
fig_wei=0.45;
lef_cor_x=0.065;
lef_cor_y=0.08;
%%
subplot(3,2,1,'position', [lef_cor_x lef_cor_y+2*fig_hei fig_wei fig_hei]);
legend({'GPS Observation', 'Logarithmic function fit','Coseismic epoch'},'fontsize',6);
subplot(3,2,2,'position', [lef_cor_x+fig_wei lef_cor_y+2*fig_hei fig_wei fig_hei]);
subplot(3,2,3,'position', [lef_cor_x lef_cor_y+fig_hei fig_wei fig_hei]);
set(gca,'xtick',[]);
sp3_y_tick=get(gca,'ytick');
sp3_y_tick(end)=[];
sp3_y_tick_label=get(gca,'yticklabel');
set(gca,'ytick',sp3_y_tick,'yticklabel',sp3_y_tick_label);
subplot(3,2,4,'position', [lef_cor_x+fig_wei lef_cor_y+fig_hei fig_wei fig_hei]);
subplot(3,2,5,'position', [lef_cor_x lef_cor_y fig_wei fig_hei]);
subplot(3,2,6,'position', [lef_cor_x+fig_wei lef_cor_y fig_wei fig_hei]);
errorbar(GPS_timeseries.time, var*1000, var_sig*1000, 'ko', 'MarkerFaceColor', 'r', 'LineWidth', 0.5);
五、y轴放置右边
set(gca,'YaxisLocation','right');
六、如何在已有的subplot上面画图
sublist = get(gcf, 'children');
plot(sublist(4), t, cos(t), 'g');
注意:sublist序号是倒过来的,也就是如何有subplot(3,2,n),那么sublist(1)=subplot(3,2,6);sublist(6)=subplot(3,2,1);以此类推
七、实习刻度和标记数值不一致
axis([-3 1 0 50]);
set(gca,'xtick',-3:0.1:1);
xt=get(gca,'xtick');
xt_label=get(gca,'xticklabel');
show=-3:0.5:1;
[tf,loc]=ismember(show,xt);
tloc=1:length(xt);
C=setdiff(tloc, loc);
xt_label(C,:)=' ';
set(gca,'xticklabel',xt_label);
set(gca,'tickdir','out')%刻度向外
box off%关闭上面和右面坐标轴
八、图例横着排列
plot(X_VWE_Xv(x,1),'-rs');
plot(X_VWE_Xv(x,2),'b-o');
plot(x,X_VWE_Xv(x,3),'-blacks');
h = legend('PC1','PC2','PC3');
set(h,'Fontsize',5,'Orientation','horizon','location','South','Box','off')
九、去掉科学计数显示:
format long g
Archiver|手机版|科学网 ( 京ICP备07017567号-12 )
GMT+8, 2024-11-20 15:41
Powered by ScienceNet.cn
Copyright © 2007- 中国科学报社