我是靠谱客的博主 优秀电源,最近开发中收集的这篇文章主要介绍matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化),觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

在matlab学习过程中,遇到了一个问题:
我要生成一堆数据,然后进行综合评价,这就需要对数据进行归一化处理
但是,我的数据不是现成的,而是每次的数据都是新生成的,这个进行归一化就比较头疼,想了个办法
可以记录每次的相对变化率(后-前)/前
然后把每次的变化率记录下来,然后再利用归一化公式y=(x-xmin)/(xmax-xmin)
就可以达到目的

废话不多说,直接上代码先

function writedowndataa(datab)	%datab是一个矩阵
flodername='.dif_log';	%我想设置的日志文件夹地址
truedata=datab(:,1);	%我只需要datab里的第一列
truedata=truedata(1:7);	%并且我只要前7个数据
pathfileName={'xxs','pjhd','pjtd','pjdbd','bzc','fzxzb','zgpf'};	%设置每个日志的名字
dataname=pathfileName;	%给dataname提前分配内存
for i=1:length(truedata)	%我要给这7个数据写log所以直接整循环
namet=dataname(i);	%这句好像可以直接写到下一句里,调试的时候用了下也懒得改了
pathfileName(i)={strcat(flodername,namet,'.txt')};	%拼接字符串,把要写的log的地址以及名字拼一起,这里其实是问题关键所在
%这个东西是个元胞数组(cell类型),所以赋值的时候必须要加{},而且用[a,b,'.txt']字符串拼接根本拼不了,必须还得用strcat
b=char(pathfileName{i});	%写完全称之后一定要把cell转成char,否则它读不懂是文件路径,无法写入
output=fopen(b,'a+');
fprintf(output,'%fn',truedata(i));
fclose(output);
end
end

好了,现在每个参数每次计算都会被记录到log里,剩下的工作就简单了,只需要分别读取对应的xx.txt,然后在里面找最大值和最小值用归一化公式就可以解决了

最后

以上就是优秀电源为你收集整理的matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化)的全部内容,希望文章能够帮你解决matlab为不同参数设置独立的日志记录文件(一个参数有一个txt来记录其值,可用于参数归一化)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(59)

评论列表共有 0 条评论

立即
投稿
返回
顶部