matlab输数据出结果,matlab对数据的输入输出
matlab對(duì)數(shù)據(jù)的輸入輸出有多種方式,以內(nèi)容快的形式不完全陳述一些用法如下,以后慢慢增加。然后等對(duì)這些東西熟悉了解之后,再加以總結(jié)。
第一塊內(nèi)容:
對(duì)于一個(gè)txt文件(a.txt)內(nèi)容如下:
這是一個(gè)測(cè)試用得txt文件
項(xiàng)目1 項(xiàng)目2 項(xiàng)目3
1 ?2
2
2 ?3
3
我們可以用importdata命令如下:
filecontent=importdata('a.txt')
執(zhí)行完此命令后會(huì)有如下結(jié)果:
filecontent =
data: [2x3 double]
textdata: {2x1 cell}
rowheaders: {2x1
cell}
然后,filecontent.data,filecontent.textdata,filecontent.data.rowheaders中內(nèi)容依次為:
filecontent.data =
1
2 ?2
2
3 ?3
filecontent.textdata =
'這是一個(gè)測(cè)試用得txt文件'
'項(xiàng)目1 項(xiàng)目2 項(xiàng)目3 '
filecontent.rowheaders =
'這是一個(gè)測(cè)試用得txt文件'
'項(xiàng)目1 項(xiàng)目2 項(xiàng)目3 '
內(nèi)容快二:
一個(gè)可以跳過一個(gè)文本文件前skip行的程序可以設(shè)計(jì)如下(雖然有這個(gè)思路,但是可取性必要性值得商榷):
function OUTPUT=loaddata(filename,skip)
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%本程序作用:導(dǎo)入文本文件中的數(shù)據(jù)。跳過前skip行。
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%by:baby_wolf contact: QQ654832919
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%syntax:
%OUTPUT=loaddata(filename,skip)
%
%filename:你要導(dǎo)入的文件名(支持文本型數(shù)據(jù)文件)
%skip: ?忽略的行數(shù)
%
%示例:
�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);
內(nèi)容快三:
matlab中fopen函數(shù)在指定文件打開的實(shí)例如下:
*1)“fopen”打開文件,賦予文件代號(hào)。
語法1:FID= FOPEN(filename,permission)
用指定的方式打開文件
FID=+N(N是正整數(shù)):表示文件打開成功,文件代號(hào)是N.
FID=-1 : 表示文件打開不成功。
FID在此次文件關(guān)閉前總是有效的。
如果以讀方式打開,matlab首先搜索工作目錄,其次搜索matlab的其他目錄,“permission”是打開方式參數(shù)。
打開方式參數(shù)由以下字符串確定:
r 讀出
w 寫入(文件若不存在,自動(dòng)創(chuàng)建)
a 后續(xù)寫入(文件若不存在,自動(dòng)創(chuàng)建)
r+ 讀出和寫入(文件應(yīng)已存在)
w+ 重新刷新寫入,(文件若不存在,自動(dòng)創(chuàng)建)
a+ 后續(xù)寫入(文件若不存在,自動(dòng)創(chuàng)建))
w 重新寫入,但不自動(dòng)刷新
a 后續(xù)寫入,但不自動(dòng)刷新
文件的存儲(chǔ)格式:文件打開的默認(rèn)方式是:二進(jìn)制。以文本方式打開,可以在方式參
數(shù)“permission”中加入“t”文件將,如“rt”,“wt+”
matlab中fprintf函數(shù)的具體使用方法實(shí)例如下:
fprintf函數(shù)可以將數(shù)據(jù)按指定格式寫入到文本文件中。其調(diào)用格式為:
數(shù)據(jù)的格式化輸出: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用來指定數(shù)據(jù)輸出時(shí)采用的格式
%d
整數(shù)
%e
實(shí)數(shù):科學(xué)計(jì)算法形式
%f
實(shí)數(shù):小數(shù)形式
%g
由系統(tǒng)自動(dòng)選取上述兩種格式之一
%s
輸出字符串
fprintf(fid,format,A)
說明:fid為文件句柄,指定要寫入數(shù)據(jù)的文件,format是用來控制所寫數(shù)據(jù)格式的格式符,與fscanf函數(shù)相同,A是用來存放數(shù)據(jù)的矩陣。
例6.9 創(chuàng)建一個(gè)字符矩陣并存入磁盤,再讀出賦值給另一個(gè)矩陣。
>> 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');
%得到文件號(hào)
[f,count]=fscanf(fid,'%f %f',[12,90]);
%把文件號(hào)1的數(shù)據(jù)讀到f中。其中f是[12 90]的矩陣
%這里'%f %f'表示讀取數(shù)據(jù)的形勢(shì),他是按原始數(shù)據(jù)型讀出
fclose(fid);
%關(guān)閉文件
另外有的txt文件還可以用load來打開
其語句為
f=load('fx.txt)
內(nèi)容快四:
數(shù)據(jù)格式形如:
276725;034545104X;0
276726;0155061224;5
276727;0446520802;0
276729;052165615X;3
文件是一個(gè)大約100萬行3列的數(shù)組。第一列是用戶編號(hào),都是整數(shù);第二列是書本isbn編號(hào),有純數(shù)字,也有字符X,N,isbn等甚至還可以有小數(shù)點(diǎn);第三列是評(píng)分,為0-10的整數(shù)?,F(xiàn)在我想把這個(gè)讀到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);
內(nèi)容快五:
MovieLens 1M的數(shù)據(jù),里面的數(shù)據(jù)排列很規(guī)整,都是形如
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);
總結(jié)
以上是生活随笔為你收集整理的matlab输数据出结果,matlab对数据的输入输出的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bufg和bufgp_如何将自己写的ve
- 下一篇: matlab求两点的距离,matlab求