1樓:大野瘦子
% 開啟檔案(注意修改檔名)
fid = fopen('480684994.txt','rt');
if fid == 0, return, end% 讀檔案直到結束
while ~feof(fid)
% 每次讀入一行
s = fgetl(fid);
% 以空格作為資料項的分隔符
2樓:
以matlab r2012b為例。
首先開啟matlab;
選擇current folder並加入當前路徑;
選擇指定的txt檔案,右鍵,選擇匯入資料;
選擇相應的資料型別,這裡應選matrix。
具體如下圖所示:
開始匯入資料
匯入資料
3樓:劉陽升
用load,textread或者importdata文字(txt)格式的檔案,只能識別資料,對其中的文字無法讀取。
可以使用fscanf或者sscanf的方式讀取,
思路為:定義cell矩陣,先全部以字元的方式讀入,再將其中的數字轉換為資料格式。
**如下:
m=8;n=3;
data=cell(m,n);%定義cell矩陣,儲存檔案內容
fid=fopen('test.txt','r');%以只讀方式開啟檔案
for i=1:m
for j=1:n
data=fscanf(fid,'%s',[1,1]);%以字元方式讀取每個值,遇空格完成每個值的讀取
endend
fclose (fid);
for i=1:m
for j=2:n
data=str2double(data);%將文字格式轉為數字格式
endend
str=cell(m,1);用於儲存data的第一列
for i=1:m
str=data;end
4樓:匿名使用者
你這第一列不是數字格式吧?
5樓:
可以試試dlmread函式
matlab讀取txt檔案中的資料存為矩陣
6樓:
1、開啟一個txt檔案,會發現他既有字元又有數值。
2、此時將字元全部刪除,只留下有用的資料數值。
3、記住該資料夾的地址,一會要作為路徑用於matlab讀取。
4、此時使用一個textread函式,函式內部代入剛才的txt檔案路徑。
5、textread函式會把這些資料讀成1為向量。我們將其分為兩列,用x和y代表,儲存為矩陣。
7樓:du瓶邪
1)開啟檔案
在讀寫檔案之前,必須先用fopen函式開啟或建立檔案,並指定對該檔案進行的操作方式。fopen函式的呼叫格式為:
fid=fopen(檔名,‘開啟方式’)
說明:其中fid用於儲存檔案控制代碼值,如果返回的控制代碼值大於0,則說明檔案開啟成功。檔名用字串形式,表示待開啟的資料檔案。常見的開啟方式如下:
‘r’:只讀方式開啟檔案(預設的方式),該檔案必須已存在。
‘r+’:讀寫方式開啟檔案,開啟後先讀後寫。該檔案必須已存在。
‘w’:開啟後寫入資料。該檔案已存在則更新;不存在則建立。
‘w+’:讀寫方式開啟檔案。先讀後寫。該檔案已存在則更新;不存在則建立。
‘a’:在開啟的檔案末端新增資料。檔案不存在則建立。
‘a+’:開啟檔案後,先讀入資料再新增資料。檔案不存在則建立。
另外,在這些字串後新增一個“t”,如‘rt’或‘wt+’,則將該檔案以文字方式開啟;如果新增的是“b”,則以二進位制格式開啟,這也是fopen函式預設的開啟方式。
2)關閉檔案
檔案在進行完讀、寫等操作後,應及時關閉,以免資料丟失。關閉檔案用fclose函式,呼叫格式為:
sta=fclose(fid)
說明:該函式關閉fid所表示的檔案。sta表示關閉檔案操作的返回**,若關閉成功,返回0,否則返回-1。如果要關閉所有已開啟的檔案用fclose(‘all’)。
2、二進位制檔案的讀寫操作
1)寫二進位制檔案
fwrite函式按照指定的資料精度將矩陣中的元素寫入到檔案中。其呼叫格式為:
count=fwrite(fid,a,precision)
說明:其中count返回所寫的資料元素個數(可預設),fid為檔案控制代碼,a用來存放寫入檔案的資料,precision代表資料精度,常用的資料精度有:char、uchar、int、long、float、double等。
預設資料精度為uchar,即無符號字元格式。
例6.8 將一個二進位制矩陣存入磁碟檔案中。
>> a=[1 2 3 4 5 6 7 8 9];
>> fid=fopen('d:\test.bin','wb') %以二進位制資料寫入方式開啟檔案
fid =
3 %其值大於0,表示開啟成功
>> fwrite(fid,a,'double')
ans =
9 %表示寫入了9個資料
>> fclose(fid)
ans =
0 %表示關閉成功
2)讀二進位制檔案
fread函式可以讀取二進位制檔案的資料,並將資料存入矩陣。其呼叫格式為:
[a,count]=fread(fid,size,precision)
說明:其中a是用於存放讀取資料的矩陣、count是返回所讀取的資料元素個數、fid為檔案控制代碼、size為可選項,若不選用則讀取整個檔案內容;若選用則它的值可以是下列值:n(讀取n個元素到一個列向量)、inf(讀取整個檔案)、[m,n](讀資料到m×n的矩陣中,資料按列存放)。
precision用於控制所寫資料的精度,其形式與fwrite函式相同。
3、文字檔案的讀寫操作
1)讀文字檔案
fscanf函式可以讀取文字檔案的內容,並按指定格式存入矩陣。其呼叫格式為:
[a,count]=fscanf(fid,format,size)
說明:其中a用來存放讀取的資料,count返回所讀取的資料元素個數,fid為檔案控制代碼,format用來控制讀取的資料格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點型)、s(字串型)、c(字元型)等,在%與格式符之間還可以插入附加格式說明符,如資料寬度說明等。
size為可選項,決定矩陣a中資料的排列形式,它可以取下列值:n(讀取n個元素到一個列向量)、inf(讀取整個檔案)、[m,n](讀資料到m×n的矩陣中,資料按列存放)。
2)寫文字檔案
fprintf函式可以將資料按指定格式寫入到文字檔案中。其呼叫格式為:
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)
一個寫入txt檔案的小例子:
n=100;
r=rand(1,n);
fid = fopen('tt.txt','wt');
for k=1:n;
p=num2str(r(k));
fprintf(fid,'%c',p);
fprintf(fid,'%c\n',' ');
endfclose(fid);
8樓:匿名使用者
fid=fopen('檔名','r');
s=fread(fid,inf,'uint8=>char')';%讀取檔案內容
fclose(fid);
str=regexp(s,'([-+]?\d+)(\.)?(\d*)([ee][-+]?\d+)?','match');%匹配數值的字串
data=cellfun(@str2num,str);%字串轉為數值存在data中
a=reshape(data,[3 4 length(data)/12]);%整形
a=permute(data,[2 1 3]);
最後a是個三維矩陣,
a(:,:,1)是第一組資料,
a(:,:,2)是第二組資料。。。。以此類推
在倒數第三句中data已經是所有資料組成的行向量
你可以根據自己的需要,讓它變形為你所需要的資料
9樓:匿名使用者
你把資料放入到txt文件中。例如a=[資料]
在matlab中輸入檔名,就會生成變數a,當中儲存你的資料
如何將文字檔案中資料匯入到sql表中
1 建立 load.ctl 檔案 load data characterset utf8 infile d importdata datafile data.txt into table table namefields terminated by trailing nullcols id,mobi...
怎麼用批處理刪除當前目錄下所有文字檔案中指定字串之前的內容
批處理檔案放你那當前目錄下,假定要找的字串是abcd,執行後將把在此之前的所有內容 包括本行之前的及上面所有行 刪去,未找到這字串的文字則不動 echo on setlocal enabledelayedexpansion set str abcd for f delims i in findstr...
統計文字檔案中各字母出現的次數(不區分大小寫),顯示出現過的字母和出現的次數。要求 1 打擊「
加一文字框,設定為多行,加一按鈕,拷以下 private sub command1 click dim myoutput as string,i as integer,j as integer for i 1 to 26 j len text1.text len replace ucase text...