matlab输数据出结果,matlab对数据的输入输出
matlab對數據的輸入輸出有多種方式,以內容快的形式不完全陳述一些用法如下,以后慢慢增加。然后等對這些東西熟悉了解之后,再加以總結。
第一塊內容:
對于一個txt文件(a.txt)內容如下:
這是一個測試用得txt文件
項目1 項目2 項目3
1 ?2
2
2 ?3
3
我們可以用importdata命令如下:
filecontent=importdata('a.txt')
執行完此命令后會有如下結果:
filecontent =
data: [2x3 double]
textdata: {2x1 cell}
rowheaders: {2x1
cell}
然后,filecontent.data,filecontent.textdata,filecontent.data.rowheaders中內容依次為:
filecontent.data =
1
2 ?2
2
3 ?3
filecontent.textdata =
'這是一個測試用得txt文件'
'項目1 項目2 項目3 '
filecontent.rowheaders =
'這是一個測試用得txt文件'
'項目1 項目2 項目3 '
內容快二:
一個可以跳過一個文本文件前skip行的程序可以設計如下(雖然有這個思路,但是可取性必要性值得商榷):
function OUTPUT=loaddata(filename,skip)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%本程序作用:導入文本文件中的數據。跳過前skip行。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%by:baby_wolf contact: QQ654832919
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%syntax:
%OUTPUT=loaddata(filename,skip)
%
%filename:你要導入的文件名(支持文本型數據文件)
%skip: ?忽略的行數
%
%示例:
�t=loaddata('ceshi.dat',3);
%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
fid=fopen(filename,'r');
for i=1:skip
tmp= fgetl(fid);
end
data=[];
while tmp~=-1
tmp=fgetl(fid);
if tmp~=-1
eval_r(['ADD=[' ,tmp
,'];']);
end
data=[data; ADD];
end
OUTPUT=data;
fclose(fid);
內容快三:
matlab中fopen函數在指定文件打開的實例如下:
*1)“fopen”打開文件,賦予文件代號。
語法1:FID= FOPEN(filename,permission)
用指定的方式打開文件
FID=+N(N是正整數):表示文件打開成功,文件代號是N.
FID=-1 : 表示文件打開不成功。
FID在此次文件關閉前總是有效的。
如果以讀方式打開,matlab首先搜索工作目錄,其次搜索matlab的其他目錄,“permission”是打開方式參數。
打開方式參數由以下字符串確定:
r 讀出
w 寫入(文件若不存在,自動創建)
a 后續寫入(文件若不存在,自動創建)
r+ 讀出和寫入(文件應已存在)
w+ 重新刷新寫入,(文件若不存在,自動創建)
a+ 后續寫入(文件若不存在,自動創建))
w 重新寫入,但不自動刷新
a 后續寫入,但不自動刷新
文件的存儲格式:文件打開的默認方式是:二進制。以文本方式打開,可以在方式參
數“permission”中加入“t”文件將,如“rt”,“wt+”
matlab中fprintf函數的具體使用方法實例如下:
fprintf函數可以將數據按指定格式寫入到文本文件中。其調用格式為:
數據的格式化輸出:fprintf(fid, format,
variables)
按指定的格式將變量的值輸出到屏幕或指定文件
fid為文件句柄,若缺省,則輸出到屏幕
1
for standard output (the screen) or 2 for standard error. If FID is
omitted, output goes to the screen.
format用來指定數據輸出時采用的格式
%d
整數
%e
實數:科學計算法形式
%f
實數:小數形式
%g
由系統自動選取上述兩種格式之一
%s
輸出字符串
fprintf(fid,format,A)
說明:fid為文件句柄,指定要寫入數據的文件,format是用來控制所寫數據格式的格式符,與fscanf函數相同,A是用來存放數據的矩陣。
例6.9 創建一個字符矩陣并存入磁盤,再讀出賦值給另一個矩陣。
>> a='string';
>>
fid=fopen('d:\char1.txt','w');
>> fprintf(fid,'%s',a);
>> fclose(fid);
>>
fid1=fopen('d:\char1.txt','rt');
>>
fid1=fopen('d:\char1.txt','rt');
>> b=fscanf(fid1,'%s')
b =
string
matlab讀txt文件
fid=fopen('fx.txt','r');
%得到文件號
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件號1的數據讀到f中。其中f是[12 90]的矩陣
%這里'%f %f'表示讀取數據的形勢,他是按原始數據型讀出
fclose(fid);
%關閉文件
另外有的txt文件還可以用load來打開
其語句為
f=load('fx.txt)
內容快四:
數據格式形如:
276725;034545104X;0
276726;0155061224;5
276727;0446520802;0
276729;052165615X;3
文件是一個大約100萬行3列的數組。第一列是用戶編號,都是整數;第二列是書本isbn編號,有純數字,也有字符X,N,isbn等甚至還可以有小數點;第三列是評分,為0-10的整數?,F在我想把這個讀到matlab中,最好是三列向量分開讀。
fid = fopen('BX-Book-Ratings.txt');
UserData = textscan(fid,'%f %s
%f','Delimiter',';');
fclose(fid);
User = UserData{:,1};
Isbn = UserData{:,2};
score = UserData{:,3};
Userid = grp2idx(User);
Isbnid = grp2idx(Isbn);
內容快五:
MovieLens 1M的數據,里面的數據排列很規整,都是形如
1::1193::5::978300760
1::661::3::978302109
1::914::3::978301968
的格式,不過有100多萬行,讀取方式
>> fid =
fopen('MovieLens_1M.txt');
>> A = textscan(fid,'%f %*2s %f %*2s
%f %*2s %f','CollectOutput',1);
>> B = A{:};
>> B(1:10,:)
ans =
1?1193?5?978300760
1?661?3?978302109
1?914?3?978301968
1?3408?4?978300275
1?2355?5?978824291
1?1197?3?978302268
1?1287?5?978302039
1?2804?5?978300719
1?594?4?978302268
1?919?4?978301368
>> fclose(fid);
總結
以上是生活随笔為你收集整理的matlab输数据出结果,matlab对数据的输入输出的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bufg和bufgp_如何将自己写的ve
- 下一篇: 2d 蓝图_“蓝图”卷积--对深度可分离