MATLAB||文件指令fopen,fclose,fprintf

fopen

fileID = fopen(filename,  permission)

1,fileID是文件标识符,可以简单看作fopen函数打开的这个文件的代称

2,filename是要打开的文件名,完整地应该是应该文件地址,按matlab文件地址格式来即可

3,permission是打开文件的方式,该项不填默认'r',打开要读取的文件。另有'w'是清空原有内容,重新对文件写入内容,'a'在文件末尾追加写入内容,'r+''w+''a+'加号表示文件不仅可写还可读

fclose

fclose(fileID)

关闭一个文件。fileID是一个整数的文件标识符,来自fopen。

fclose('all')

关闭所有打开的文件。

status = fclose(...)

得到的status是关闭状态。0关闭成功,-1关闭失败。

...可能代指上面两种情况。

fprintf

将数据写入text文本

fprintf(fileID, formatSpec,A1,...,An)

formatSpec这里就是‘%d’一类的东西。

最后一项是需要写入的数据,这里A1-An的写法是数组。

nbytes = fprintf(__)

nbytes是返回的所写字节数。

实例:

% -------------打印参数---------------------------------
filelocation = '文件地址,例如D:\wenjianjia\wenjian.txt';
fp = fopen(filelocation,'a');
if(fp == 0)
    printf('\n open file error');
end 
fprintf(fp,'\n\n//------%s------',date);
fprintf(fp,'\n//------Option: %d,------frames: %d,------Freq Offset: %d,------SIG: ',Opt,total_number,Freq_offset);
fprintf(fp,'%d',SIG_data);
fprintf(fp,'\n//------PSDU_Pbsize: %d,------iter numbers: %d,------Noise Type: AWGN  ',PSDU_pbsize,iter_num);
fprintf(fp,'\nSNR = [');
for fi_snr=minvaule : deltaSNR : maxvaule  
    fprintf(fp, '%f   ',fi_snr); 
end
fprintf(fp,'];\nerr_PSDU = [');
fclose(fp);

% -------------打印本次snr下的err-------------------------
    fp = fopen(filelocation,'a');
    fprintf(fp,'%e   ',err_PSDU(n)/total_number);
    fclose(fp);

% -------------打印---------------------------------------
fp = fopen(filelocation,'a');
fprintf(fp,'];\nerr_PHR = [');
for i_snr=1:N
    fprintf(fp,'%e   ',err_PHR(i_snr));
end
fprintf(fp,'];\nerr_SIG = [');
for i_snr=1:N
    fprintf(fp,'%e   ',err_SIG(i_snr));
end
fprintf(fp,'];\nCFO = [');
for i_snr=1:N
    fprintf(fp,'%e   ',MSE_CFO(i_snr));
end
fprintf(fp,'];\nerr_channelPSDU = [');
for i_snr=1:N
    fprintf(fp,'%e   ',err_channel_PSDU(i_snr));
end
fprintf(fp,'];\nerr_channelPSDUK = [');
for i_snr=1:N
    fprintf(fp,'%e   ',err_channel_PHR(i_snr));
end
fprintf(fp,'];\n------历时 %s秒',toc);
fclose(fp);

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值