日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人文社科 > 生活经验 >内容正文

生活经验

tm matlab,[转载]关于matlab中textread

發布時間:2023/11/27 生活经验 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 tm matlab,[转载]关于matlab中textread 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天打算跑下程序,突然發現,真的很爛,不會讀入數據,簡單的Iris.txt一上午都沒讀進去,在此對matlab中的textread函數做下總結,textscan函數待續。

筆者在此基礎上進行運行,修改得到以下內容,希望大家給與補充:

textread

基本語法是:

[A,B,C,…]

= textread(filename,format)

[A,B,C,…]

= textread(filename,format,N)

其中filename就是文件名, format就是要讀取的格式,A,B,C就是從文件中讀取到的數據。

必須嚴格遵守用法不可出現data=textread(filename,format,N)的形式

其中括號里面變量的個數必須和format中定義的個數相同。 如果每N行相同格式的數據,可采用[A,B,C,…] =

textread(filename,format,N)的語法,讀取N次。

_______________________________________________________________________________________

注:textread不用先fopen那個文件,適用于格式統一的txt文件的一次性大批量讀取。textread讀取某個文件后,下次再用textread讀取這個文件時,還是會從文件頭開始讀取。

________________________________________________________________________________________

例如:

.....................................................................................

例1:無分隔符

mytest.txt

1?2?3?4

5?6?7?8

9?10?11?12

讀取:

>>[data1,data2,data3,data4]=textread('mytest.txt','%n%n%n%n');

>>data=[data1 data2 data3

data4]

data =

1?2?3?4

5?6?7?8

9?10?11?12

或者,[data1,data2,data3,data4]=textread(filename,'%n%n%n%n',3);%注意3為讀取次數,應該是行數

....................................................................................

例2:有分隔符(逗號,分號...)

myfile.txt 中的內容如下:

1, 2, 3,

4

5, 6, 7,

8

9, 10,

11, 12

讀取:

>>

[data1,data2,data3,data4]=textread('myfile.txt','%n%n%n%n','delimiter',

',')

>> data=[data1 data2 data3 data4]

data =

1?2?3?4

5?6?7?8

9?10?11?12

這里delimiter是指 指出分隔符,讀數據的時候會自動跳過分隔符。

至此應該知道Iris.txt怎么讀入了吧。

[data1,data2,data3,data4,data5]=textread('Iris.txt','%f%f%f%f%s','delimiter',',');

需要注意的是,參數位置要和textread函數用法對應

[A,B,C,…] =

textread(filename,format,N)也就是filename,format,N三個參數必須在其他參數前面,所以150才會出現在format后

例如:[data1,data2,data3,data4,data5]=textread('Iris.txt','%f%f%f%f%s',150,'delimiter',',');

..............................................................................

例3:有分隔符及首行注釋

myfiles.txt 中的內容如下:

% this a

comment

1, 2, 3,

4

5, 6, 7,

8

9, 10,

11, 12

>>

[data1,data2,data3,data4]=textread('myfiles.txt','%n%n%n%n','delimiter',

',','headerlines', 1);

>>?data=[data1

data2 data3 data4]

data =

1?2?3?4

5?6?7?8

9?10?11?12

textread中的headerlines指明了跳過幾行,1可自由設定

這里headerlines告訴textread跳過一開始的1行,1可以替換為任意你要跳過的行數。

..............................................................................

例4:針對txt文件不同格式數據的讀取

myfile.txt 中的內容如下:

Sally

Level1 12.34 45 Yes

讀入:

[names, types, x, y, answer] = textread('myfileli4.txt' , '%s %s %f

%d %s', 1);

對應格式[A,B,C,…] = textread(filename,format,N)

_________________________________________________________________________________

例4.1: 如果要忽略12.34這個浮點數。

[names,

types, y, answer] = textread('myfileli4.txt' , '%s %s %*f %d %s',

1)

%*f

告訴textread跳過一個浮點數。

names =

'Sally'

types =

'Level1'

y =

45

answer =

'Yes'

對于iris.txt如果只想讀取數據可用[data1,data2,data3,data4]=textread('Iris.txt','%f

%f %f %f %*s',150,'delimiter',',');

____________________________________________________________________________________________

例:4.2?如果要忽略Level,指讀取后面的數字,

>> [names,

levelnum, x, y, answer] = textread('myfileli4.txt','%s Level%d %f

%d %s', 1)

names =

'Sally'

levelnum =

1

x =

12.3400

y =

45

answer =

'Yes'

________________________________________________________________________________________________

..............................................................OK

...............................................

例5: txt中存在空位

myfileli5.txt 中的內容如下

1,2,3,4,,6

7,8,9,,11,12

想用nan替代為空的部分

如下:

>>[data1 data2 data3 data4 data5

data6] = textread('myfileli5.txt','%f%f%f%f%f%f', 'delimiter', ',',

'emptyvalue', NaN)

>> data=[data1 data2 data3 data4

data5 data6];

>> data

data =

1?2?3?4?NaN?6

7?8?9?NaN?11?12

....................................................................................................................

例6: 跳列

myfileli6.txt 中的內容如下

Sally

Type1 12.34 45 Yes

Joe Type2

23.54 60 No

Bill

Type1 34.90 12 No

如果只想讀第一列,其余的跳過

讀入:

>> clear

>>

[names]=textread('myfileli6.txt','%s%*[^n]');

>> names

names =

'Sally'

'Joe'

'Bill'

%[^n] 就是一直讀到行尾。

如:

>> [names

rest]=textread('myfileli6.txt','%s%[^n]')

names =

'Sally'

'Joe'

'Bill'

rest =

'Type1

12.34 45 Yes'

'Type2 23.54

60 No'

'Type1 34.90

12 No'

%*[^n] 就是從當前直接跳到行尾。

% *是一個跳過符號,表示跳過該位

....................................................................................

例7:讀入規律格式的數據

myfileli7.txt 中的內容如下

Location;date;discharge

Lobith;1989-01-01;00:00;2801

Lobith;1989-01-02;00:00;2619

讀入:

[location year month day hour minute

discharge]=textread('myfileli7.txt','%s%f-%f-%f%f:%f%f','headerlines',1,'delimiter',';');

如下:

>> clear

>> [location year month day hour

minute

discharge]=textread('myfileli7.txt','%s%f-%f-%f%f:%f%f','headerlines',1,'delimiter',';')

location =

'Lobith'

'Lobith'

year =

1989

1989

month =

1

1

day =

1

2

hour =

0

0

minute =

0

0

discharge =

2801

2619

總結

以上是生活随笔為你收集整理的tm matlab,[转载]关于matlab中textread的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。