matlab使用load指令,科学网—matlab常用方法 - 陈超的博文

本文介绍了在MATLAB中如何读取和处理数据,包括从.mat和.txt文件加载数据,将结构类型转换为矩阵,以及对文本内容的处理。此外,还讲解了画图操作,如设置图例、坐标轴属性、格网显示,以及在已有子图上添加图形。同时,文章提到了调整坐标轴刻度和标签的一致性,以及避免科学计数显示的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前将数组或者矩阵保存为一个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

转载本文请联系原作者获取授权,同时请注明本文来自陈超科学网博客。

链接地址:http://blog.sciencenet.cn/blog-858128-1003634.html

上一篇:psvelo

下一篇:xshell使用连接ubuntu系统

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值