MATLAB 如何匯入 txt文字

2021-10-08 08:35:36 字數 3707 閱讀 3873

小試牛刀之matlab@matlab

1.fopen搭配textscan

2.利用impordata匯入資料

3.採用load函式

在matlab gui的學習中,需要匯入各種格式的.txt檔案,心血來潮想總結一波。

首先,利用uigetfile選擇檔案位置,**命令如下:

[filename, pathname] = uigetfile(,  '匯入資料',...

'multiselect','off'); % 不允許同時選擇多個檔案

if isequal(filename,0)

disp('user selected cancel')

else

disp(['user selected', fullfile(pathname, filename)]) %當返回了乙個檔案的時候,可以用fullfile將路徑和檔名組合起來

end

在此列舉一種比較複雜的情況,有中文表頭的資料檔案(在此列舉滾動軸承的訊號資料,資料量比較大):

matlab 匯入.txt文字的幾種方式:

1.fopen搭配textscan函式

file=fullfile(pathname, filename);      % 匯入.txt檔案

f=fopen(file); %以唯讀模式開啟混合格式文字檔案

dt=textscan(f,'%s'); %採用textscan 讀取資料

對於資料量大的文字檔案推薦使用textscan,不推薦使用textread函式讀取資料。

在此種情況下,匯入的資料格式如下:

可以自行調整得到文字及資料。**如下(可能不甚高明,歡迎小夥伴指教):

因為涉及到cell型資料向double型別的資料轉換,略有一丟丟麻煩。

faultlayer=dt(1:f);

a=transpose(str2num(char(dt(f+1:end))));

for ilength=1:(length(dt)/f-1)

data(ilength,1:4)=a((ilength-1)*f+1:ilength*f);

end

得到結果如下:

2.利用impordata匯入資料

datatable = importdata(file);                %載入txt資料(只匯入資料)

data = datatable.data; %讀取非元胞的資料

此**只匯入資料,格式與.txt文字檔案相同,與上一方法經過轉換後得到的格式相同,如下圖所示,對於只匯入資料的文字檔案十分簡便。

3.採用load函式

貌似只能匯入資料檔案,這個不是十分清楚。

file=fullfile(pathname, filename);         % 匯入.txt檔案

num=load(file) ;

[m,n]=size(num);

匯入的資料如下圖所示:

最後提醒一點,當匯入.txt文字時,中文出現亂碼時,在前面新增以下**即可解決。

feature('defaultcharacterset', 'utf8'); % 使得matlab支援utf-8編碼
另外,我之前編寫gui**的時候,對於可以匯入.txt和.xls的多種檔案格式的處理感到十分疑惑,具體的資料處理並不相同,如何才能區別匯入的是何種檔案呢?最後我瞎搞,弄了乙個複雜的方法解決,希望有小夥伴告訴我怎麼解決(期待.jpg)

if

isempty

(findstr

(filename,

'.txt'))

==0% 為空,結果為1

feature

('defaultcharacterset'

,'utf8');

% 使得matlab支援utf-

8編碼 file=

fullfile

(pathname, filename)

;% 匯入.txt檔案

f=fopen

(file)

;%以唯讀模式開啟混合格式文字檔案,列數

dt=textscan

(f,'%s');

%採用textscan 讀取資料

faultlayer=dt(1

:f);

a=transpose

(str2num

(char

(dt(f+

1:end)))

);for ilength=1:

(length

(dt)

/f-1

)data

(ilength,1:

4)=a

((ilength-1)

*f+1

:ilength*f)

; end

flag_load=

true

;elseif(

isempty

(findstr

(filename,

'.xlsx'))

==0||isempty

(findstr

(filename,

'.xls'))

==0)[num,txt,raw]

=xlsread

(filename,-1

);%匯入.xlsx檔案 或.xls檔案

[m,n]

=size

(num)

; flag_load=

true

;else

string=

strcat

(pathname,filename)

;errordlg

(string+

"讀取失敗,請檢查檔案格式!"

,'錯誤提示');

endend

第一篇文章就這樣吧!以後要繼續加油噢!奧里給!

Matlab寫文字txt換行

matlab關於文字檔案的操作函式基本都是繼承c語言的,但存在一些細微的差別。1.寫txt換行的實現 方法一 fid fopen filename.txt w fprintf fid,d r n a fclose fid 方法二 fid fopen filename.txt wt 加t表示以文字檔案...

r匯入txt亂碼 aboboo匯入文字亂碼

aboboo匯入歌詞 txt等的時候可能會出現亂碼的情況。問題原因為 aboboo採用ansi編碼,而匯入的檔案可能採用的是utf8編碼 解決方法 以下是一段文字 但是這段文字複製到aboboo後可能會出現亂碼,如圖所示 解決方法是 1,新建乙個文字文件,使用notepad 開啟 2,修改編碼方式為...

oracle表匯入文字。txt資料

1 首先建立ctl檔案,如下 load data infile d sqlldr basc.txt 要匯入的文字資料路徑 insert into table table1 要匯入資料的表 id 列名 terminated by 這裡的 可以根據你文字中的分隔符來設定。name terminated ...