matlab中如何以多行字串形式讀取檔案

時間 2022-03-15 13:05:15

1樓:

首先,你備份檔案,格式為,.txt。放在根目錄下。

然後我們用在matlab你面讀取你的txt。

嘗試這個程式:

m= gallery('integerdata', 100, [5 8], 0);

dlmwrite('myfile.txt', m, 'delimiter', '\t')

d=dlmread('myfile.txt')第一行是我生成的一個矩陣,然後第二行我寫入到檔案'myfile.txt'。

這就模擬了你的.dat檔案, 改成.txt之後的樣子。

你在程式第一行寫

d=dlmread('myfile.txt')就讀取了檔案。並把讀取的,寫入到了d矩陣中。

結果如下:

『myfile.txt』就是你說的字串,一行程式就可以完成讀取。

d=dlmread('myfile.txt');

2樓:鉞小夏侯

在使用matlab遇到問題時,在網上搜尋到很多有用的知識,比起看幫助檔案的英文要省力的多了

matlab檔案操作

檔案操作是一種重要的輸入輸出方式,即從資料檔案讀取資料或將結果寫入資料檔案。matlab提供了一系列低層輸入輸出函式,專門用於檔案操作。

1、檔案的開啟與關閉

1)開啟檔案

在讀寫檔案之前,必須先用fopen函式開啟或建立檔案,並指定對該檔案進行的操作方式。fopen函式的呼叫格式為:

fid=fopen(檔名,『開啟方式』)

說明:其中fid用於儲存檔案控制代碼值,如果返回的控制代碼值大於0,則說明檔案開啟成功。檔名用字串形式,表示待開啟的資料檔案。常見的開啟方式如下:

 『r』:只讀方式開啟檔案(預設的方式),該檔案必須已存在。

 『r+』:讀寫方式開啟檔案,開啟後先讀後寫。該檔案必須已存在。

 『w』:開啟後寫入資料。該檔案已存在則更新;不存在則建立。

 『w+』:讀寫方式開啟檔案。先讀後寫。該檔案已存在則更新;不存在則建立。

 『a』:在開啟的檔案末端新增資料。檔案不存在則建立。

 『a+』:開啟檔案後,先讀入資料再新增資料。檔案不存在則建立。

另外,在這些字串後新增一個「t」,如『rt』或『wt+』,則將該檔案以文字方式開啟;如果新增的是「b」,則以二進位制格式開啟,這也是fopen函式預設的開啟方式。

2)關閉檔案

檔案在進行完讀、寫等操作後,應及時關閉,以免資料丟失。關閉檔案用fclose函式,呼叫格式為:

sta=fclose(fid)

說明:該函式關閉fid所表示的檔案。sta表示關閉檔案操作的返回**,若關閉成功,返回0,否則返回-1。如果要關閉所有已開啟的檔案用fclose(『all』)。

2、二進位制檔案的讀寫操作

1)寫二進位制檔案

fwrite函式按照指定的資料精度將矩陣中的元素寫入到檔案中。其呼叫格式為:

count=fwrite(fid,a,precision)

說明:其中count返回所寫的資料元素個數(可預設),fid為檔案控制代碼,a用來存放寫入檔案的資料,precision代表資料精度,常用的資料精度有:char、uchar、int、long、float、double等。

預設資料精度為uchar,即無符號字元格式。

例6.8 將一個二進位制矩陣存入磁碟檔案中。

>> a=[1 2 3 4 5 6 7 8 9];

>> fid=fopen('d:\test.bin','wb') %以二進位制資料寫入方式開啟檔案

fid =

3 %其值大於0,表示開啟成功

>> fwrite(fid,a,'double')

ans =

9 %表示寫入了9個資料

>> fclose(fid)

ans =

0 %表示關閉成功

3樓:貞皖

把names.txt檔案放入matlab安裝目錄下work(預設搜尋路徑)資料夾下,試下:

clc,clear

a=textread('names.txt','%c');

n=1;j=1;

for i=1:length(a)

x=a(i);

if x~=','

file(n,j)=x;

j=j+1;

else

n=n+1;

j=1;

endend

file

mingzigeshu=n

結果:file =

'mary'

'patricia'

'linda'

'barbara'

'elizabeth'

'jennifer'

'maria'

'susan'

'margaret'

'dorothy'

'lisa'

'nancy'

'karen'

'betty'

'helen'

'sandra'

'donna'

'carol'

'ruth'

'sharon'

'michelle'

'laura'

'sarah'

'kimberly'

'deborah'

'jessica'

'shirley'

'cynthia'

'angela'

'melissa'

'brenda'

'amy'

'anna'

'rebecca'

'virginia'

'kathleen'

'pamela'

'martha'

'debra'

'amanda'

'stephanie'

'carolyn'

'christine'

'marie'

'janet'

'catherine'

'frances'

'ann'

'joyce'

'diane'

'alice'

'julie'

'heather'

'teresa'

'doris'

'gloria'

'evelyn'

'jean'

'cheryl'

'mildred'

'katherine'

'joan'

'ashley'

'judith'

'rose'

'janice'

mingzigeshu =66

matlab中,讀取txt檔案,按行讀取且讀取後是字串!要求寫好**!

4樓:匿名使用者

fid = fopen('aaa.txt');

tline = fgetl(fid);

while ischar(tline)

disp(tline)

tline = fgetl(fid);

endfclose(fid);

matlab中如何讀取txt檔案(檔案中有字串且有資料)

5樓:匿名使用者

那個『abc』等非字串是匯入不了的吧,如果你要匯入的是純數字的,我可以告訴你,但是你的txt檔案要事先調一下,像

12 33 36

15 13 28這樣就行了,然後用excel開啟它,注意將檔案型別選為所有檔案,要不找不到txt檔案,找到後開啟,第二步會讓你選以什麼為分隔符製表,選上空格,然後開啟了就是個**,複製資料,然後開啟matlab,工作空間處新建矩陣,然後點開,貼上進去就可以了,當然excel與matlab有介面,但也不比複製貼上省事,就這樣做就可以了

matlab中如何讀取多個txt檔案中的某一行的資料

在matlab中怎樣讀取txt混合檔案中的資料

6樓:匿名使用者

envi轉換資料不會是沒有規律的,通常都是按列優先或行優先的方式儲存

因此,先用load命令載入,觀察一下資料就知道具體是哪種方式,再按那個方式把原始資料修改成所需的矩陣形式就ok

注意:load不是能把txt中的任何資料都可以載入的,需要先將非資料(即文字描述之類的)刪掉

matlab讀取txt檔案,txt裡面有字串和數值兩種型別

7樓:我的數學網路

function fun()

temdat=load('d:\test.txt');

if temdat== -1

('error opening the file');

enda=[temdat(:,1),temdat(:,2),temdat(:,3))];

8樓:匿名使用者

如果沒有答案,那就用其他的方法吧。

可以先用ultraedit的 列模式 把後面的刪了,然後再用matlab讀入

9樓:匿名使用者

使用textscan函式。

10樓:匿名使用者

用csvread或者dlmread都能完成你的要求,textscan也能,但是需要指定格式

c 中字元陣列,如何轉成字串啊

97樂於助人 如果你想把一個字串變成陣列,你只需要將字串初始化為陣列變數的值即可。例如 char c 10 this is 齋傲雲 在c 裡字串在記憶體的儲存方式就是按字串陣列的形式儲存的,所以不用轉換! du瓶邪 用cstring的getbuffer函式返回一個存放字元的頭指標,用一個char 來...

c語言刪除字串中的字元,C語言 刪除字串中指定的字元

受災 這個容易,就是把指定位置的字元去掉,也就是說後面的字元覆蓋比如刪除指定的字元在字串中第一個出現的位置void strdel char str,char ch if p 希望能解決您的問題。 微俊 include include int main s i 0 printf input a cha...

MATLAB怎樣輸入漢字字串,matlab 輸出字串

祿新雁 disp a1 num2str a 1 首先介紹disp 函式 該函式在頁面上顯示一個陣列或者字串。作為一種普遍用法,可以記住disp 需要顯示的內容 這個萬能的格式,此處不解釋這樣使用的原因,略顯複雜了些。總之,的存在是為了能同時在一個函式中顯示多種資料。a1 中的 是在matlab中定義...