【matlab】绘图与读写文件

1、plot函数

链接:
1、改变坐标轴刻度的显示数值.
2、matlab 设置坐标轴位置/方向 y轴反向

figure %重启打开另一个画布
plot(B,'r');%r表示红色,B表示变量
hold on;  %保持在同一幅画中画图
plot(C,'b');%b表示蓝色,C表示变量
legend('sin','cos');%标注曲线
xlim([100 200]);%放大的横坐标
ylim([-1 1]);%放大的纵坐标
xlabel('fs/hz')%标注x轴坐标
%% 绘制相同大小的窗体,在word中粘贴后进行截图,输出的文字要比一般的大
figure(2)
x_500= randi([-3,3],1,300)*0.5;
plot(x_500,'b-*','linewidth',1.0);
xlabel('实验编号');
ylabel('距离/m');
%ylim([400 600]);
%xlim([1,10]);
%% 坐标参数设置,字体大小统一控制
xlabel( '\itf\rm_d/Hz', 'fontname', 'times new roman', 'fontsize', 24 );
ylabel( '\it\tau\rm/s', 'fontname', 'times new roman', 'fontsize', 24 );
zlabel( '\mid\it\chi\rm_B\mid/dB', 'fontname', 'times new roman', 'fontsize', 24 );
set( gca, 'fontname', 'times new roman', 'fontsize', 16, 'fontname',...
'times new roman', 'fontsize', 16, 'fontname', 'times new roman', 'fontsize', 16 );

set (gca,'position',[0.1,0.1,0.5,0.5] );%设置绘图在窗口中的位置
set(figure(3),'Position',[300,100,750,500]);%绘制信号窗体大小
set(figure(3),'Position',[300,300,600,300]);% 两个窗口大小
set(gca,'XTick',-pi:pi/2:pi);% 改变显示间距
set(gca,'XTickLabel',{'-pi','-pi/2','0','pi/2','pi'});%改变显示参数


%保存图片
fignamer=('CW模糊函数');
saveas(gcf,['D:\1per\personal_mi_20210118\tongx\cxy_tongx\CDMA\tu_20210327\LFM与CW\',fignamer,'.tiff'])
saveas(gcf,['D:\1per\personal_mi_20210118\tongx\cxy_tongx\CDMA\tu_20210327\LFM与CW\',fignamer,'.fig'])

2、文件保存或者画图中标注变量

【链接】文件或者图像标签命名如何加入变量

【文件】命名包含变量
audiowrite(sprintf(‘mic_%d_%d.wav’,ii,pp),YY,fs);
【文件】c文件写入
stringName = [‘fileNameNum’,’.c’]
%stringName = [sprintf(‘mic_%d_%d.wav’,ii,pp)];
dlmwrite(stringName,codeNum);%codeNum是变量数据
【文件】c文件读取
stringName = [‘fileNameNum’,’.c’];
I_Code = 1;
stringName2 = [‘dateICode_’,num2str(I_Code),’.c’];
codeNum = dlmread(stringName);
【画图】变量做标题
stringName = [sprintf(‘mic_%d_%d.wav’,ii,pp)];
title(stringName);

3、读取bin文件,转为txt写文件


close all;
clear all;
clc;
filename_fusion = 'fusion.bin';
fp_fusion = fopen(filename_fusion, 'rb');
fusion  = fread(fp_fusion,'double');%表示1100列的数据读取
filename_posres = 'posres.bin';
fp_posres = fopen(filename_fusion, 'rb');
posres  = fread(fp_posres,'double');%表示1100列的数据读取


fidALL=fopen('fusion.txt','w');%写入文件路径
for jj=1:length(fusion)
fprintf(fidALL,'%1.9f\n',fusion(jj));   %按列输出,若要按行输出:fprintf(fid,'%.4\t',A(jj)); 
end
fidALL_posres=fopen('posres.txt','w');%写入文件路径
for jj=1:length(posres)
fprintf(fidALL_posres,'%1.9f\n',posres(jj));   %按列输出,若要按行输出:fprintf(fid,'%.4\t',A(jj)); 
end

fclose(fidALL);
fclose(fidALL_posres);
fclose(fp_fusion);
fclose(fp_posres);

4、读写mat文件

    stringName = sprintf('Carrier_Phase_Errorr_%d.mat',prn_len);
    FreqName = sprintf('Carrier_Freq_%d.mat',prn_len);
    save(stringName,'Carrier_Phase_Errorr','-v7.3');
    save(FreqName,'Carrier_Freq','-v7.3');
    % mat文件存储方式
    load(stringName,'Carrier_Phase_Errorr');
    load(FreqName,'Carrier_Freq');
    %% c文件读写方式
    dlmwrite('sdin_20210419.c',din);%写入c文件
	ttt = dlmread('sigSTM32_20210419.c');%写入c文件

5、数据生成中的技巧

数据x为[a,b]之间的数据,将数据转换至[-1,1],其中a为最小值,b为最大值
z = (2x-a-b)/(b-a)

t=0:1/fs:T-1/fs;    %时间 实现横坐标由采样点数转为时间s,更改横坐标显示特点1:1000变为1:10s  其中(fs=100)

%% 产生+1-1之间的数据 以及加入噪声
date=2*(rand(40000,1)-0.5);
X1 = date*4;
x1 = awgn(X1,SNR,'measured');%sqrt(2)*sin(0:pi/1000:6*pi); 
ddin =  awgn(Delay_ddin,SNR,'measured');
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值