1. 程式人生 > >在Matalb中如何讀取TXT檔案中的資料

在Matalb中如何讀取TXT檔案中的資料

根據txt文件不同種類介紹不同的讀取資料方法


一、純資料檔案(沒有字母和中文,純數字)


對於這種txt文件,從matalb中讀取就簡單多了


例如test.txt檔案,內容為


17.901 -1.1111 33.045 
17.891 -1.1286 33.045 
17.884 -1.1345 33.045


可以在command window中輸入load test.txt ,然後就會產生一個test的資料檔案,內容跟test.txt中的資料一樣;另一種方法是在file/import data....../next/finish 也可產生一個叫test的資料檔案。


二、中英文和資料如test1.txt


你好 
歡迎來到 
論壇 
edu.cn 
1 11 111 1111 
2 22 222 2222 
3 33 333 3333 
4 44 444 4444 
5 55 555 5555




這樣的檔案怎麼讀入資料呢? 
方法有多種,現舉兩個比較簡單實用的。


方法一: 
file/import data....../next/finish 
>> whos 
Name           Size                   Bytes Class


data           5x4                      160 double array 
textdata       4x1                      300 cell array


Grand total is 54 elements using 460 bytes


>> data


data =


           1          11         111        1111 
           2          22         222        2222 
           3          33         333        3333 
           4          44         444        4444 
           5          55         555        5555


>> textdata


textdata =


    '你好' 
    '歡迎來到' 
    '論壇' 
    'edu.cn'


方法二: 
[a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4) 
說明:%s可以是其他形式,跟讀入的資料型別有關,比如這裡也可以用%n,%f等。 
這裡%s的個數和[a1,a2,a3,a4]對應。 
>> [a1,a2,a3,a4]=textread('test1.txt','%s%s%s%s','headerlines',4)


a1 =


    '1' 
    '2' 
    '3' 
    '4' 
    '5'


a2 =


    '11' 
    '22' 
    '33' 
    '44' 
    '55'


a3 =


    '111' 
    '222' 
    '333' 
    '444' 
    '555'


a4 =


    '1111' 
    '2222' 
    '3333' 
    '4444' 
    '5555' 
因以字串的形式讀入,所以有''。 
————————————————————————————————


三、中文 資料 英文 混亂如test.txt


你好 
1 11 111 1111 
歡迎來到 
2 22 222 2222 
論壇 
3 33 333 3333 
edu.cn 
4 44 444 4444 
5 55 555 5555


說明:這種內容格式的檔案用上面的方法是不行的。


以下是由chinamaker編寫的一種方法:


fidin=fopen('test.txt');                               % 開啟test2.txt檔案             
fidout=fopen('mkmatlab.txt','w');                       % 建立MKMATLAB.txt檔案 
while ~feof(fidin)                                      % 判斷是否為檔案末尾               
    tline=fgetl(fidin);                                 % 從檔案讀行   
    if double(tline(1))>=48&&double(tline(1))<=57       % 判斷首字元是否是數值 
       fprintf(fidout,'%s\n\n',tline);                  % 如果是數字行,把此行資料寫入檔案MKMATLAB.txt 
       continue                                         % 如果是非數字繼續下一次迴圈 
    end 
end 
fclose(fidout); 
MK=importdata('MKMATLAB.txt');      % 將生成的MKMATLAB.txt檔案匯入工作空間,變數名為MK,實際上它不顯示出來 
>> MK


MK =


           1          11         111        1111 
           2          22         222        2222 
           3          33         333        3333 
           4          44         444        4444 
           5          55         555        5555


---------------------------------------------------------------


我的txt資料裡既有數字又有字串,形式為:
0.129515 DDAA  01  2.24609 94.50000  98
0.130434 DDAA  01  2.24609 96.30000  9A
0.131441 DDAA  01  2.24609 97.20000  9B
0.132448 DDAA  01  2.24609 99.00000  9D
0.133507 DDAA  01  2.24609 100.80000  9F
0.134515 DDAA  01  2.24609 101.70000  A0
............
我只想要第一列,第四列,第五列。
也就是0.129515    2.24609    94.50000 這3列數,
怎樣匯入matlab啊?
 


假設資料在data.txt裡,且位於當面matlab路徑裡,用下面這句就可以了
[col1,col2,col3]=textread('data.txt','%f %*s %*d %f %f %*s',-1);
---------------------------------------------------------------
http://hi.baidu.com/youngbrave/blog/item/878db31fcd4f220f304e15bb.html

相關推薦

Matalb如何讀取TXT檔案資料

根據txt文件不同種類介紹不同的讀取資料方法 一、純資料檔案(沒有字母和中文,純數字) 對於這種txt文件,從matalb中讀取就簡單多了 例如test.txt檔案,內容為 17.901 -1.1111 33.045  17.891 -1.1286 33.045  17.8

C++如何讀取txt檔案資料並且以二位陣列存到記憶體

本次實驗主要的目的就是讀取txt的資料,在上次博文中說到如何讀取txt的資料,那篇博文讀了一行資料並存在了一個一維向量中,本次實現讀取二維向量。直接上程式碼: 解釋一下:程式碼中的40代表有40行,8064代表有8064列。 #include <iostream> #includ

Matlab讀取txt檔案資料(使用textread函式)

在使用Matlab處理資料時,我們經常需要讀取txt文件,可以使用Matlab中強大的textread函式。它的基本語法是:[A,B,C,...] = textread(filename,format)[A,B,C,...] = textread(filename,forma

QT和VS讀取.txt檔案資料並儲存為陣列

QT中讀取.txt檔案並儲存為陣列 QFile fpx("/work/qt_workspace/saly/pix_x.txt"); QFile fpy("/work/qt_workspace/saly/pix_y.txt"); // QVector&l

資料集生成方法:Python讀取txt檔案的URL路徑並下載圖片

1.資料來源: 可針對自己的模型需要在imagenet官網上下載所需類別對應的txt檔案。 2.資料下載: import os from urllib.request import urlretrieve def download(): catego

MFC逐行讀取txt檔案資料

小測試程式:               1、逐行讀取txt檔案中的資料,到vector中               2、得到相應的檔案路徑  原始碼: // TODO: 在此新增控制元件通知處理程式程式碼 //OnOK(); TCHAR path[255];

Python讀取txt檔案的兩種可行辦法

DataTest.txt中的檔案內容,檔案最後儘量不要留空行,否則有的時候會出現error 1,2,3 4,5,6 7,8,9 第一種方式:使用 csv.reader讀取txt檔案 import csv data = [] with open('E:/DataTest.t

在python讀取TXT檔案的方法

【時間】2018.11.14 【題目】(轉載)在python中讀取TXT檔案的方法 【轉載連結】https://www.cnblogs.com/youyou0/p/8921719.html 一、讀檔案  1.簡單的將檔案讀取到字串中   f = open(

java-讀取txt檔案的第一行URL並進行請求,得出響應

背景:其實我是拿來練手的。想寫程式碼而已,並沒有啥特殊的目地 我的需求: 有一個url.txt檔案,裡面裝的一行一行的URL 我要請求每一行URL,然後去請求,拿到第一個請求的響應結果,程式碼很簡單,網上一搜遍地都是,我加工了一下。 整合了 直接上碼吧! p

python讀取txt檔案,windows下麼有毛病,到Linux下總是隻有最後一行有效,怎麼解決?

比如:這個txt有5行, fin = open('F:\\temp\\name.txt','r') for line in fin: strsname = line.rstrip('\n') AAA('F:\\temp','F:\\temp\\2',str

Matlab讀取txt檔案的幾種方法

fidin=fopen('test.txt');                               % 開啟test2.txt檔案              fidout=fopen('mkmatlab.txt','w');                       % 建立MKMATLAB.tx

php 讀取txt檔案的內容,轉換成陣列

$str = file_get_contents('weixinname.txt');//將整個檔案內容讀入到一個字串中 $str_encoding = mb_convert_encod

Android從assets和raw讀取txt檔案

方法一、將要讀取的txt檔案拷貝到Android工程目錄下的assets資料夾下 方法二、在res資料夾下新建raw資料夾,將txt拷貝到該目錄下 本方法是從assets中讀取 /** * 從

如何利用C/C++逐行讀取txt檔案的字串(可以順便實現文字檔案的複製)

       本文程式碼都在Windows/VC++6.0下測試過, 在linux/g++下也沒有問題。         但是請一定注意linux和Windows檔案格式的區別,比如:        1. 當linux上的程式碼讀取Windows檔案格式時, 讀取結果的每行

,編寫一個程式,將a.txt檔案的單詞與b.txt檔案的單詞交替合併到c.txt檔案,a.txt檔案的單詞用回車符分隔,b.txt檔案中用回車或空格進行分隔.

在java面試寶典看到這樣一題,看到答案真蛋疼,看了半天才明白,可能每個人的想法不一樣!答案也不知道是那位前輩寫的,讓人理解起來太費精了!老饒彎子,以下是本人自已整理的,去面試如果真有這麼一題,應該不成問題了。。。。。。。如有不是的地方還望指點 package accp

C++:依次讀取TXT檔案各行資料

// FileHandle.cpp : 定義控制檯應用程式的入口點。 // #include "stdafx.h" #include <iostream> #include <fstream> #include <string> int main() { s

Java讀取配置檔案的內容,並將其賦值給靜態變數的方法

應用場景 專案開發中某個功能需要抽取成方法寫成一個工具類,提供給別人使用。寫過工具類的人都知道,工具類中的方法一般都是靜態方法,可以直接使用類名點方法名呼叫, 使用很方便,比如判斷某個物件是否為空的方式Objects.equals().由於我寫的這個工具類中需要讀取配置檔案中的內容,但是常規方法注入成員變數時

c++txt檔案讀取以及在MFC讀取txt座標資料並完成圖形繪製

主要介紹如何讀取txt檔案中的座標資料,並在MFC視窗中繪製出來,工程建立方法和繪圖方法與上一篇博文基本一致,這裡就不再詳贅述,可參考上一篇博文vs2010、MFC視窗中繪製點、線、面。 C++中讀取檔案的方法有兩種,一種是來自於C語言的“檔案指標”方法,另一種是C++中的“檔案流”思想。

Python從txt檔案逐行讀取資料

Python從txt檔案中逐行讀取資料   # -*-coding:utf-8-*- import os for line in open("./samples/label_val.txt"): print('line=', line, end = '') #後面

讀取mat檔案特定資料儲存到txt

最近在做faster-rcnn的內容,資料集標籤給的格式是mat版本,而且標籤內容有些是不需要的,想著提取需要的專案然後存在txt中,自己寫了個matlab檔案: file_path = './'; mat_path_list = dir(strcat(file_path,'*.mat'