首页 > 其他分享 >DIY(01)PLUS版——对多个txt文件进行汇总计算

DIY(01)PLUS版——对多个txt文件进行汇总计算

时间:2022-10-18 18:58:17浏览次数:44  
标签:01 end res average Fitems else PLUS DIY mean

 

相对于第一版的计算进行了改进

 

第一版的思路是把每一个txt中的每一行提取出来,对每一行进行判断,存储进入对应的cell,最后进行公式计算;

第二版的思路是把每一个txt中的每一个条件下的数据全部提取出来,然后将汇总后的条件数据进行mean计算;

clear all;
clc;
fileFolder=fullfile('D:\data\ZHJresults_133');
dirOutput=dir(fullfile(fileFolder));
fileNames={dirOutput.name};
[~,AN]=size(fileNames);
res=[];
% 
feature('DefaultCharacterSet', 'UTF8');
Data=importdata([fileFolder,'\',fileNames{1,3}]);
var=native2unicode(Data.textdata{2,1}(5));


for i = 3:AN
   %% basic prepration
    F=[];
    W=[];
    N=[];
    Fitems=[];
    Witems=[];
    Nitems=[];
   
    feature('DefaultCharacterSet', 'UTF8');
    Data1=importdata([fileFolder,'\',fileNames{1,i}]);
    if isempty(Data1)
        F = 0;
        W=0;
        N=0;
        Fitems=0;
        Witems=0;
        Nitems=0;
    else
    [qq,pp]=size(Data1.textdata);
    %% total game time
     char=Data1.textdata{qq,1};
     if length(char) ==13
         TotalTime=str2double(char(7:11)); % min
     else
         if length(char) < 13
             TotalTime=str2double(char(7:10));
         else
             disp(['The total time of ',fileNames{1,i}, ' is unnormal.']);
         end
     end
        
    %% total game rounds
    GameRounds = qq-1;
    
    %% selection: F/W/N
    indexF=1;
    indexW=1;
    indexN=1;
    for n=1:qq-1
        % game round 
        msg = Data1.textdata{n,1};
        items = Data1.data(n,:);
        % inter and items as a maxtre
        if ~isempty(strfind (msg,'F'))
            box = strsplit (msg,var);
            F(indexF,1)= str2double(box{1,3}(1:5));
            if isempty(Fitems)
                Fitems = items;
            else
                Fitems = [Fitems;items];
            end
            indexF = indexF+1;
        else
            if ~isempty(strfind (msg,'W'))
                box = strsplit (msg,var);
                W(indexW,1)= str2double(box{1,3}(1:5));
                if isempty(Witems)
                    Witems = items;
                else
                    Witems = [Witems;items];
                end
                indexW = indexW + 1;
            else
                box = strsplit (msg,var);
                N(indexN,1)= str2double(box{1,3}(1:5));
                if isempty(Nitems)
                    Nitems = items;
                else
                    Nitems = [Nitems;items];
                end
                indexN = indexN+1;
            end
        end
        
    end
    
    %%
    % types round
    Fround = size(F,1);
    Wround = size(W,1);
    Nround = size(N,1);
    
    % average inter time and item scores
    
    
    
    if ~isempty(F)
        F_averInter = mean(F);
        Fitem1_average = mean(Fitems(:,1));
        Fitem2_average = mean(Fitems(:,2));
        Fitem3_average = mean(Fitems(:,3));
    else
        F_averInter = 0;
        Fitem1_average = 0;
        Fitem2_average = 0;
        Fitem3_average = 0;
    end
    
    if ~isempty(W)
        W_averInter = mean(W);
        Witem1_average = mean(Witems(:,1));
        Witem2_average = mean(Witems(:,2));
        Witem3_average = mean(Witems(:,3));
    else
        W_averInter = 0;
        Witem1_average = 0;
        Witem2_average = 0;
        Witem3_average =0;
    end
    
    if ~isempty(N)
        N_averInter = mean(N);
        Nitem1_average = mean(Nitems(:,1));
        Nitem2_average = mean(Nitems(:,2));
        Nitem3_average = mean(Nitems(:,3));
    else
        N_averInter = 0;
        Nitem1_average = 0;
        Nitem2_average = 0;
        Nitem3_average =0;
        
    end
    
    
    res(i-2,1) = str2double(fileNames{1,i}(length(fileNames{1,i})-3:length(fileNames{1,i})));
    res(i-2,2)= TotalTime;
    res(i-2,3)= GameRounds;
    res(i-2,4)= F_averInter;
    res(i-2,5)= Fround;
    res(i-2,6)=Fitem1_average;
    res(i-2,7)=Fitem2_average;
    res(i-2,8)=Fitem3_average;
    res(i-2,9)=W_averInter;
    res(i-2,10)=Wround;
    res(i-2,11)=Witem1_average;
    res(i-2,12)=Witem2_average;
    res(i-2,13)=Witem3_average;
    res(i-2,14)=N_averInter;
    res(i-2,15)=Nround;
    res(i-2,16)= Nitem1_average;
    res(i-2,17)= Nitem2_average;
    res(i-2,18)= Nitem3_average;
        
        
    end
        
end
 Result=array2table(res,'VariableNames',{'ID','TotalTime','T_round','F_inter','F_round','F_item1','F_item2','F_item3','W_inter','W_round','W_item1','W_item2','W_item3','N_inter','N_round','N_item1','N_item2','N_item3'});
 writetable(Result,'D:\data\n133.xlsx');
 msgbox('DONE!');
    
    
    

 

标签:01,end,res,average,Fitems,else,PLUS,DIY,mean
From: https://www.cnblogs.com/MJnotes/p/16803657.html

相关文章

  • opengl安装(win10, vs2019)
    出于学习原因需要安装opengl,干脆在这里总结一下安装过程,做个简单记录(•̀ω•́)✧、(我安装时使用的visualstudio版本为2019,不确定对于其他版本本流程是否适用) ......
  • 操作系统面试题01
    01、进程和线程的区别1、进程进程是资源分配的基本单位。进程控制块(ProcessControlBlock,PCB)描述进程的基本信息和运行状态,所谓的创建进程和撤销进程,都......
  • adg搭建-ora-01034 ora-27101
    在adg搭建过程中,备库启动到nomount状态,并且使用连接字符串测试可以连接上主备库,但是执行脚本就报错ora-01034ora-27101  遇到这种报错,也是先百度了下,然后也没有遇到......
  • [GXYCTF2019]luck_guy
    1.就是说输了一串字符然后进了patch_me这个函数2.双击patch_mecase4是给f2赋值case5对f2操作case1是对f1f2进行了strcat操作然后他就是flag4.因此我......
  • 数据结构作业(2018/10/10)
    1.基本的a+b(+-*/%)#include<bits/stdc++.h>usingnamespacestd;intmain(){inta,b;charch;intans;scanf("%d%d%c",&a,&b,&ch);......
  • Vue3 + elementplus 表单验证+上传图片+ 防止表单重复提交
    首先,上官网地址https://element.eleme.cn/#/zh-CN/component/form首先页面上面用了弹窗的形式,做完之后长这样,有全屏,关闭等按钮,上效果图和完整代码!!!!!   <!--点击......
  • 2018 最值得关注的前端技术
    1.前言2017悄然过去,2018已经来到。人在进步,技术在发展。2018年前端有哪些领域,技术值得关注,哪些技术会兴起,哪些技术会没落。下面就我个人的判断进行一个预测判断,希望能对大家......
  • C语言零基础入门-结构体-01
    C语言零基础入门-结构体-01这节课的主要内容:1,什么是结构体。2,结构体的定义以及使用。1.什么是结构体这个问题就变得有意思了,为什么呢?因为他可以与我们之前的学习紧密相关了......
  • Windows Server 2012 搭建Ftp服务器
    WindowsServer2012搭建Ftp服务器一、介绍FTP全称是FileTransferProtocol的简称,是一种文件传输协议。它使用TCP进行传输,客户和服务器建立连接前需要进行一个"三次握手......
  • IT 运营管理 (ITOM)解决方案-OpManager Plus
    什么是ITOMITOM是配置网络资源、增强容量规划、实现最佳性能并确保IT基础架构持续可用性的过程。它包含所有网络和应用程序监控任务,可帮助您向最终用户提供不间断的优质......