Matlab的部分文件操作
Author:Maddock
Date:2015-01-20
讀取TXT文件內容到矩陣
img.txt數據讀入到R矩陣
R = importdata('img.txt');
矩陣保存到讀取TXT文件
f_id=fopen('testimg\debug\test.txt','wt');%在當前目錄以寫的方式打開或創建txt文件 a=randi(9,10);%定義要輸出的矩陣 這里用了一個隨機整數矩陣代表要輸出的結果做示例 for i=1:10fprintf(f_id,'%d ',a(i,:));%輸出 可以整行輸出 并統一控制格式fprintf(f_id,'\n');%換行 end fclose(f_id);%關閉文件?
判斷文件是否存在
infilename = [str,'\lena.jpg']; sgc_exist = exist(infilename, 'file'); % 由變量 sgc_exist 返回文件是否存在,因為是判斷文件是否存在,所以第二個參數寫'file' if sgc_exist ~= 0disp('lena.jpg is exist'); end遍歷文件中某個后綴的所有文件
?
dir函數:獲得指定文件夾下的所有子文件夾或文件,并存到文件結構數組中.
?
調用方式:
?
dir('.')列出當前目錄下所有子文件夾和文件
?
dir('G:\Matlab')列出指定目錄下所有子文件夾和文件
?
dir('*.m')列出當前目錄下符合正則表達式的文件夾和文件
?
比如說在d:\filetxt下有一系列txt文件,文件名符合matlab變量名的命名規則。
file=dir('d:\filetxt\*.txt');for n=1:length(file)str = ['d:\filetxt\',file(n).name]; disp(str);end打開文件操作
?
http://www.cnblogs.com/longdouhzt/archive/2013/01/29/2881749.html
?
1、? Matlab文件操作主要有三個步驟:首先打開文件,然后對文件進行讀寫操作,最后要關閉文件。
?
2、? fid=fopen(文件名,打開方式)
?
| 'r' | 只讀,文件必須存在(缺省的打開方式) |
| 'w' | 寫文件,若文件已存在則原內容將被覆蓋;若文件不存在則新建一個 |
| 'a' | 在文件末尾添加,文件若不存在則新建一個 |
| 'r+' | 可讀可寫,文件必須存在 |
| 'w+' | 可讀可寫,若文件已存在則原內容將被覆蓋;若文件不存在則新建一個 |
| 'a+' | 可讀可寫可添加,文件若不存在則新建一個 |
?
3、? fid 為文件句柄,其它函數可以用它對該文件進行操作。如果句柄值大于 0,則表示文件打開成功;若打開失敗,fid 的返回值為 -1。
?
fid=fopen('output.txt','wt+');
?
fprintf(fid,'Hello world!\n');
?
fclose(fid);
?
4、? 有兩個標準代碼文件,不需打開就可以直接使用,分別為:fid=1 標準輸出文件,fid=2 標準錯誤文件。
?
fprintf(1,'Hello world!\n');
?
fprintf(2,'Hello world!\n');
?
5、? 若不指定打開方式,則表示只讀。
?
6、? 文件有兩種格式:二進制文件(b)和文本文件(t)。
?
6、在Windows下,打開文件的默認是二進制格式,如果要以文本方式打開,則必須在打方式中加上字符 't'。
?
fid=fopen('output.txt','wt+');
?
7、? 其中 fid 為所要關閉的文件的句柄,status 為關閉文件的返回代碼,若關閉成功則為 0,否則為 -1。
?
status=fclose(fid);
?
8、? 文本文件的讀取
?
[A,count]=fscanf(fid,format,size)
?
A 用來存放讀取的數據
?
count 返回讀取數據的個數,為可選項
?
fid 為文件句柄
?
size 為可選項,缺省為讀取整個文件,
?
若給出,則取值可以是:
?
| N | 讀取?N?個數據到一個列向量 |
| Inf | 讀取整個文件 |
| [m,n] | 讀取?m?′?n?個數據到一個? m?′?n?矩陣中,按列存放 |
?
?
?
?
?
?
?
?
?
?
?
format 用來控制讀取的數據格式,由 % 加上格式符組成,下表中是常見的格式符,在 % 之后可以加上數據寬度,如 %12d
?
| c | 字符型 | g | 浮點數(自動) |
| d | 十進制整數 | o | 八進制 |
| e | 浮點數(科學計數法) | s | 字符串 |
| f | 浮點數(小數形式) | x | 十六進制 |
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
?
9、文本文件的寫入
?
count=fprintf(fid,format,輸出變量列表)
?
- 將輸出變量按指定的格式寫入文件中
- 若省略 fid,則表示在屏幕上輸出
- count 返回所寫入的數據元素個數(可省)
- format 以 % 開頭,通常由以下幾個部分組成:
?
?
?
l? fprintf 命令的格式說明符
?
| c | 字符型 | g | 浮點數(自動) |
| d | 十進制整數 | o | 八進制 |
| e | 浮點數(科學計數法) | s | 字符串 |
| f | 浮點數(小數形式) | x/X | 十六進制 |
?
l? format 中還可以使用的特殊字符
?
| \b | 退后一格 | \t | 水平制表符 |
| \f | 換頁 | \\ | 反斜杠 |
| \n | 換行 | '' | 單引號 |
| \r | 回車 | %% | 百分號 |
?
10、讀寫的定位
?
- 打開文件讀寫數據時,需要判斷和控制文件的讀寫位置,如數據是否讀完,或者需要讀寫指定位置上的數據等。
- 在讀寫文件時,Matlab 自動創建一個文件位置指針來管理和維護文件讀寫數據的起始位置。
- Matlab 提供了幾個文件位置指針定位操作函數:fseek、ftell 、 frewind 和 feof
?
Fseek:
?
status=fseek(fid,offset,origin)
?
fid 為文件句柄
?
offset 表示位置指針相對偏移的字節數,若為正表示向文件尾方偏移,若為負表示向文件頭方向偏移
?
origin 表示位置指針移動的參照位置,有三種取值:
?
'cof' 表示當前位置,
?
?'bof' 表示文件的開始位置,
?
?'eof' 表示文件末尾;
?
若定位成功,status 返回值為 0,否則返回 -1
?
??? ftell、frewind 和 feof:
?
返回值為從文件開始到指針當前位置的字節數:position=ftell(fid)
?
將位置指針返回到文件的起始位置:frewind(fid)
?
判斷文件位置指針是否達到文件結束位置,若文件位置指針已在文件末尾,則返回 1,否則返回 0:eofstat=ftell(fid)
?
總結
以上是生活随笔為你收集整理的Matlab的部分文件操作的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Ubuntu下建立Pycharm快捷方式
- 下一篇: 前端的工程化