Matlab批量读取csv、txt、prn等文件
生活随笔
收集整理的這篇文章主要介紹了
Matlab批量读取csv、txt、prn等文件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
clear;
close all;
clc;
%檢查數據格式,每一列為一個樣本數據
Files=dir('G:\1、科研相關\試驗\*.csv'); %讀取文件夾里所有.csv的文件,且把文件名按順序讀取在Files中
n=length(Files); %Files中文件數目% sort_nat 詳見 https://blog.csdn.net/weixin_37706204/article/details/127023046
Files2 = sort_nat({Files.name}); % 按照順序讀取文件名 %需要將Files2的cell格式轉換為struct,才可以進行后續數據提取
%詳見https://blog.csdn.net/kyang624823/article/details/78678075?ops_request_misc=&request_id=&biz_id=102&utm_term=matlab%E5%B0%86cell%E5%86%99%E5%85%A5%E5%88%B0struct&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-0-78678075.nonecase&spm=1018.2226.3001.4187Files3=cell(n,1);
for i=1:n;Files3{i}.name=Files2{i};
end
Files4=[Files3{:}];%此時Files4文件格式與初始Files相同% 數據整合過程參考 https://blog.csdn.net/weixin_53096769/article/details/110529553
x=Files4(1).name; % Files4中的第一個文件的名
z=importdata(x); % 讀取第一個文件中的csv格式數據
z=z(:,2); % 只需要第2列的數據,根據數據格式修改,z中每一列為一個樣本數據
z=z'; % 需要轉置成行數據
Last_Files=z; % Last_Files是最終文件
for i=1:n-1x=Files4(i+1).name; %讀取Files4的名字 z=importdata(x); %讀取.csv的數據z=z(:,2); %轉置過程同上z=z';Last_Files=[Last_Files;z];% 依次提取并組合到Last_Files中
endsave Last_Files %保存C4為C4.mat到當前文件夾
Last_Files=Last_Files'; %此時每一列為一個樣本數據%嘗試過將每一個樣本數據和樣本號進行對應整合,但由于double和cell格式不同,一直沒有成功
%需要的話可以手動粘貼到excel,后綴也可以嘗試刪除掉
%Files2為文件名
有時候采集數據時,經常需要將不同樣本(不同格式)數據進行匯總
上述代碼參考其他博主,進行了相應修改:
1、主要是sort_nat函數的應用(按照命名順序進行數據提取,這個非常重要)需要安裝sort_nat函數,要檢查好最終匯總數據是否按照自己的要求排序,大量文件亂序排放嚴重影響結果!!!
2、cell與struct格式的轉換,轉換后才可以進行csv文件數據的提取。
3、修改代碼Files=dir('G:\1、科研相關\試驗\*.csv');中后綴,可以進行prn、txt文件的批量讀取。
總結
以上是生活随笔為你收集整理的Matlab批量读取csv、txt、prn等文件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安装Linux后的遗留问题
- 下一篇: 计算机网络是将地理知识,计算机网络的基础