RM-2 使用matlab進行txt檔案讀寫
!本文僅供自己參考,東拼西湊系列
!總擔心草稿會丟失,因此先發出來了。還有一大半還沒寫,枯了
二、使用matlab對txt進行讀寫
使用Matlab讀取txt檔案時,常用函式有:
- 高階函式:load; importdata; dlmread; textread; strread.
- 低階函式:fopen; fclose; fgets; fgetl; fscanf; textscan.
其中,低階函式呼叫語法比較複雜,但是能按照各種格式讀取檔案,具有一定的靈活性。高階函式的呼叫語法簡單,但是隻適用於某些特殊格式的檔案型別,缺乏靈活性。
(一)利用資料匯入導向匯入txt
方法1. 主頁>>匯入資料>>檔案選擇
方法2. 在命令視窗輸入:
>> uiimport
#最終變數名與檔名相同
#缺點是:只能匯入排列較為整齊的資料,無法匯入字串
#當各列資料數量不同時,使用NaN自動補全
(二)high level(2例題待補)
指定資料檔案時,應制定檔案完整路徑;否則,應將檔案至於matlab搜尋路徑下。
1. A = importdata(‘filename’)
[A D H] = importdata(‘filename’)
[……] = importdata(’-pastespecial’)
這種呼叫自動識別資料間分隔符,將讀取的資料賦給變數A。
其中A是結構體陣列,A.data是數值型資料,A.textdata是文字資料
D是“返回的分隔符”,H是“返回的標頭檔案行數”
此時讀取的中文title均為亂碼
故在呼叫importdata函式前,打上
feature('DefaultCharacterSet', 'UTF8');
即可使matlab支援utf-8編碼。
讓我們來舉個txt例子:
比如txt檔案如下:
俺是一個測試文件,這是沒啥用的一行。
我是誰 我在幹啥 我在做什麼 啊啊啊啊!!
0.000123 0.000325 0.000378 0.000598
0.000986 0.000256 0.000245 0.000698 23333333
敲上去的字兒:
clc;clear;
feature('DefaultCharacterSet', 'UTF8');
M = importdata('textme.txt')
#這個檔名應該是testme的,hh……(尷尬而不失禮貌的微笑)
出來的結果:
M =
包含以下欄位的 struct:
data: [3×4 double]
textdata: {2×4 cell}
colheaders: {'我是誰' '我在幹啥' '我在做什麼' '啊啊啊啊!!'}
#其中,data有3行的原因是23333333被擠到下面了。
#可能是因為第一行資料有幾個,這個data矩陣就有幾列 吧=A=
另外:當資料檔案較大時,不要搞str2num這種資料轉換,瘋狂呼叫函式hhh
2. load -ascii filename ——(1)
A = load(‘filename’,’-ascii’) ——(2)
B = dlmread(‘filename’,‘delimiter’,R,C) ——(3)
[c1,c2,c3…] = textread(‘filename’,‘format’,N,‘param’,‘value’,…) ——(4)
(1)是load的命令列方式,自動產生變數(變數名是檔名)
(2)是呼叫load函式,可自定義變數名
(3)delimiter是‘指定分隔符’,R是‘所讀資料的起始行’,C是‘所讀資料的起始列’,其中R與C的起始數字都是0,其數字起始方式如C++,從0開始=從1開始。也可以:B = dlmread(‘filename’,‘delimiter’,range),其中range=[R1,C1,R2,C2],表示所讀資料的左上角和右下角。
且dlmread只能讀取單種分隔符的資料檔案,否則會報錯(‘ ’,‘colon’,‘semicolon’)
(4)format是資料寫入格式,比如%d,%5.2f,%s,%c。(藉助 %*? 跳過列。此時等號前的被賦值引數可不寫)
N是 重複使用N次由format指定的格式讀取資料
param是一種引數名,比如‘headlines’,‘delimiter’,‘whitespace’(把字元作為空格)
value是param的取值。
!其中,load和dlmread只能讀數
(例子我以後再寫……鴿鴿)
三、Low level(還沒寫)
測試檔案:
4.傾覆力矩 單位為kN.m 以下地震總傾覆力矩由給定水平力作用下的牆柱剪力求得,只用於比較牆柱傾覆力矩
0.00度地震方向… 層號 塔號 總傾覆力矩 柱傾覆力矩 比例(%) 一般牆傾覆力矩 比例(%) 短牆傾覆力矩 比例(%)
1 1 213085.13 8265.84 3.9 169422.59 79.5 35396.64 16.6
2 1 199156.00 7997.07 4.0 156910.95 78.8 34247.94 17.2
3 1 188795.81 7651.01 4.1 148052.38 78.4 33092.39 17.5
4 1 178577.22 7260.48 4.1 139516.56 78.1 31800.14 17.8
5 1 168552.22 6849.23 4.1 131284.92 77.9 30418.04 18.0
6 1 158758.06 6449.38 4.1 123219.60 77.6 29089.04 18.3
7 1 149215.14 6076.45 4.1 115434.23 77.4 27704.44 18.6
8 1 139938.30 5708.01 4.1 107911.72 77.1 26318.55 18.8
9 1 130933.94 5345.22 4.1 100670.55 76.9 24918.15 19.0
10 1 122201.20 4991.57 4.1 93690.69 76.7 23518.93 19.2
11 1 113733.77 4647.76 4.1 86959.30 76.5 22126.69 19.5
12 1 105522.21 4314.06 4.1 80462.05 76.3 20746.09 19.7
13 1 97556.52 3990.35 4.1 74185.70 76.0 19380.45 19.9
14 1 89828.02 3676.43 4.1 68119.19 75.8 18032.38 20.1
15 1 82329.98 3372.05 4.1 62253.84 75.6 16704.08 20.3
16 1 75057.46 3076.99 4.1 56583.02 75.4 15397.44 20.5
17 1 68006.91 2791.08 4.1 51101.64 75.1 14114.18 20.8
18 1 61176.10 2514.18 4.1 45806.11 74.9 12855.80 21.0
19 1 54564.37 2246.32 4.1 40693.71 74.6 11624.33 21.3
20 1 48173.18 1986.83 4.1 35769.25 74.3 10417.10 21.6
21 1 42007.12 1738.58 4.1 31016.84 73.8 9251.69 22.0
22 1 36075.42 1499.54 4.2 26460.25 73.3 8115.63 22.5
23 1 30393.84 1271.37 4.2 22106.57 72.7 7015.89 23.1
24 1 24987.17 1055.21 4.2 17975.98 71.9 5955.98 23.8
25 1 19891.97 852.67 4.3 14098.44 70.9 4940.86 24.8
26 1 15159.33 665.75 4.4 10517.04 69.4 3976.55 26.2
27 1 10858.05 496.83 4.6 7291.21 67.2 3070.00 28.3
28 1 7078.46 348.44 4.9 4499.94 63.6 2230.08 31.5
29 1 3936.25 223.50 5.7 2252.10 57.2 1460.65 37.1
30 1 1573.12 120.62 7.7 654.07 41.6 798.43 50.8
31 1 200.11 47.35 23.7 152.76 76.3 0.00 0.0
fprintf;fscanf; fclose
fopen;fclose;
fscanf(fid,format,size);
fprintf;feof(到達檔案末尾,while ~feof)
四、把資料寫入TXT(還沒寫)
命令語法 save mydata.mat variable –ascii
函式語法 save(‘mydata.mat’,’variable’,’-ascii’);
[c1 c2 c3 c4] = textread(‘sample_file2.txt’,’%s %s %s %s’,‘headerlines’,2)
(讀取四列,跳過txt中前兩行)
dlmwrite(‘ASDFGH’, ’ ’);
本文主要參考內容:
- https://www.ilovematlab.cn/thread-872-1-1.html
使用文字檔案(.txt)進行資料存取的技巧總結 - 《MATLAB從零到進階》P195~P220
相關文章
- matlab讀取npy檔案Matlab
- MATLAB快速讀取STL檔案Matlab
- 使用C#讀寫ini檔案C#
- 使用C#讀寫xml檔案C#XML
- 使用POI讀寫word docx檔案
- php如何上傳txt檔案,並且讀取txt檔案PHP
- 檔案排版(文字檔案讀寫)
- [work] python讀取txt檔案最後一行Python
- 檔案的讀寫
- Python——檔案讀寫Python
- keras讀寫檔案Keras
- 「Python」:檔案讀寫Python
- Golang 讀、寫檔案Golang
- Python 讀寫檔案Python
- Linux檔案讀、寫、執行許可權Linux
- MATLAB實戰系列(四)-匯入txt檔案技巧大全Matlab
- 使用IniEditor讀寫INI型別配置檔案型別
- java如何追加寫入txt檔案Java
- 讀取txt檔案將文字行組合成特定格式
- C++讀寫檔案C++
- C++檔案讀寫C++
- 普通檔案的讀寫
- python檔案讀寫操作Python
- python讀寫excel檔案PythonExcel
- VBA建立文字檔案、讀寫文字檔案
- Java中使用新NIO.2讀寫檔案Java
- python怎麼寫txt檔案路徑Python
- Java 讀取txt檔案生成Word文件Java
- flutter-讀寫二進位制檔案到裝置Flutter
- node使用multer進行檔案上傳
- Python:讀寫檔案(I/O) | 組織檔案Python
- 讀取檔案流並寫入檔案流
- 使用MATLAB開啟.bdf腦電檔案Matlab
- 從Matlab到FPGA(Matlab生成coe檔案或mem檔案)MatlabFPGA
- C語言-檔案讀寫C語言
- Perl讀寫檔案&字串操作字串
- C/C++ 檔案讀寫C++
- java 讀寫 ini 配置檔案Java