matlab如何讀取txt文件

轉自https://zhidao.baidu.com/question/360172958047097092.html

%% 格式化文本的讀操作
 
%只讀形式打開txt文件
file_t = fopen('mytxt.txt','r');
%以十進制讀取,且讀取的數據自動排成一列,排的順序爲:先從第一行左邊到第一行右邊,然後排第二行
A = fscanf(file_t,'%d');
%關閉文件
fclose(file_t);
 
%% 使用textscan讀取多列數據
file_t = fopen('mytxt.txt','r');
%將原來的兩列數據以數組原包(cell)的形式讀取,cell共有兩個元素
A = textscan(file_t,'%d %d');
%C和上面A一樣,D返回位置信息
[C,D] = textscan(file_t,'%d %d');
fclose(file_t);
A{1}            %原包數據的第一個元素對應第一列
A{2}
C
D
 
%% textread函數讀取,現在不常用
%這種形式將每一列分別給A,B
[A,B] = textread('mytxt.txt','%d %d');
A
B
%這種形式將txt文件排成一列賦給C
C = textread('mytxt.txt','%d');
C
 
%% 忽略標題
file_t = fopen('headline.txt','r');
%忽略掉第一行的標題信息
A = textscan(file_t,'%d %d','HeaderLines',1);
A
 
%% 使用textscan掃描字符串中的數據
clc
str_1 = 'The number is 1 2 3 4 5';
%首先使用textscan獲取第一個前14個字符
[str1,position1] = textscan(str_1,'%14c',1);
str1{:};         %The number is 
position1;       %14
%獲取字符串的長度
[temp1,temp2] = size(str_1);
%然後讀取後面的數字字符串
str_2 = textscan(str_1(position1+1:temp2),'%9c',1);
%將字符串轉化爲數值
num = str2num(str_2{1})
 
 
%% 格式化文本的寫操作
 
%使用fprintf向文件中寫入數據
%寫形式打開文件,存在就打開,不存在新創建一個文件開始寫
file_1 = fopen('text_w.txt','w');
%以數字形式寫入數據
fprintf(file_1,'%d',1225);
%關閉文件,返回0表示關閉成功
fclose(file_1);
 
%% 每寫入一次換行或插入想要的字符
file_1 = fopen('text_w.txt','w');
%\r回車符  \n換行符   這裏必須回車換行連用
fprintf(file_1,'%d\r\n',[32;34]);
%每寫入一個數字,後加一個空格,多列按列輸出
temp = randint(4,2);
fprintf(file_1,'%d ',temp);
fclose(file_1);
 
%% fprintf在命令空間輸出
str_1 = 'Hello! World!';
%這裏fid = 1;這時輸出換行只需\n就行,%c爲輸出單個字符,%s爲輸出字符串
fprintf(1,'%c\n',str_1);
%% 掃描字符串2
clear
clc
str = '1985 112 -10.53';
%將 替換爲0
A = find(str == 32);
str(A) = 48;
%下面這這一句相當於+198501120-10.53
%不是你給的+19850112-010.53
str2num(str)

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章