日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab读int16读文件_MATLAB——文件读写(1)

發布時間:2024/1/23 循环神经网络 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab读int16读文件_MATLAB——文件读写(1) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、文件打開關閉

(1)文件打開

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,即無符號字符格式。

a=[1 2 3 4 5 6 7 8 9];

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','wb')%寫入'w'

fwrite(fid,a,'double')

fclose(fid)

>>read

fid=

3 %大于0,說明文件創建成功ans=

9 %寫入9個數據ans=

0 %等于0,說明關閉成功

亂碼的二進制數

在ultra中顯示如下,這是因為二進制表示位數太長,很麻煩

(2)讀二進制文件

fread函數可以讀取二進制文件的數據,并將數據存入矩陣。其調用格式為:

[A,COUNT]=fread(fid,size,precision)

說明:其中A是用于存放讀取數據的矩陣、COUNT是返回所讀取的數據元素個數、fid為文件句柄、size為可選項,若不選用則讀取整個文件內容;若選用則它的值可以是下列值:N(讀取N個元素到一個列向量)、inf(讀取整個文件)、[M,N](讀數據到M×N的矩陣中,數據按列存放)。precision用于控制所寫數據的精度,其形式與fwrite函數相同。

clear all

a=[1 2 3 4 5 6 7 8 9];

fid=fopen('C:\Users\ning wang\Desktop\MATLAB\test.txt','rb')%讀取'r'

[A,COUNT]=fread(fid,'double')

fclose(fid)

從二進制返回到double類型數組。

一定要注意讀取的格式,否則返回的類型會發生變化

clear all

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','rb')

[A,count]=fread(fid)

fclose(fid)

將讀寫整合在一個程序里

clear all

a=[1 2 3 4 5 6 7 8 9];

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','wt')

fwrite(fid,a,'double')

fclose(fid)

fid1=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','rt')

[A,count]=fread(fid,'double')

s=A(1)+A(9)

3、文本文件的讀寫操作

(1)寫文本文件fprintf函數可以將數據按指定格式寫入到文本文件中。其調用格式為:

fprintf(fid,format,A)

說明:fid為文件句柄,指定要寫入數據的文件,format用來控制讀取的數據格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點型)、s(字符串型)、c(字符型)等,在%與格式符之間還可以插入附加格式說明符,如數據寬度說明等,與fscanf函數相同,A是用來存放數據的矩陣。

clear all

a=[1 2 3 4 5 6 7 8 9];

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','w')

fprintf(fid,'%f',a)

fclose(fid)

控制精度

clear all

a=[1 2 3 4 5 6 7 8 9];

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test.txt','w')

fprintf(fid,'%.2f',a)

fclose(fid)

clear all

x= 0:.1:1;

A=[x; exp(x)];%矩陣

fileID= fopen('exp.txt','w'); %打開,寫入

fprintf(fileID,'%6s %12s\n','x','exp(x)');%

fprintf(fileID,'%6.2f %12.8f\n',A);

fclose(fileID);

可以看到換行符,可以看到長度,可以看到小數位數,都是右對齊,按列取數,按行排列、可以看出記事本和ultra顯示的差異

clear all

x= 0:.1:1;

A=[x; exp(x)];%矩陣

fileID= fopen('exp.txt','w'); %打開,寫入

fprintf(fileID,'%6s %12s\r\n','x','exp(x)');

fprintf(fileID,'%6.2f %12.8f\r\n',A);

fclose(fileID);

在記事本中,可以顯示出換行

利用type ,查看文件內容

(2)讀文本文件fscanf函數可以讀取文本文件的內容,并按指定格式存入矩陣。其調用格式為:

[A,COUNT]=fscanf(fid,format,size)

說明:其中A用來存放讀取的數據,COUNT返回所讀取的數據元素個數,fid為文件句柄,format用來控制讀取的數據格式,由%加上格式符組成,常見的格式符有:d(整型)、f(浮點型)、s(字符串型)、c(字符型)等,在%與格式符之間還可以插入附加格式說明符,如數據寬度說明等。size為可選項,決定矩陣A中數據的排列形式,它可以取下列值:N(讀取N個元素到一個列向量)、inf(讀取整個文件)、[M,N](讀數據到M×N的矩陣中,數據按列存放)。

clear all

fid=fopen('C:\Users\Administrator\Desktop\MATLAB\test1.txt')

data=fscanf(fid,'%d',[2,inf])

fclose(fid)

可以看出是2列n行。

clear all

x= 1:1:5;

y= [x;rand(1,5)];

fileID= fopen('nums2.txt','w');

fprintf(fileID,'%d %4.4f\n',y);

fclose(fileID);

type nums2.txt

fileID= fopen('nums2.txt','r');

formatSpec= '%d %f';

sizeA= [2Inf];

A=fscanf(fileID,formatSpec,sizeA)

fclose(fileID);

clear all

str= '78°C 72°C 64°C 66°C 49°C';

fileID= fopen('temperature.txt','w');

fprintf(fileID,'%s',str);

fclose(fileID);

fileID= fopen('temperature.txt','r');

degrees= char(176);%攝氏度的符號

[A,count]= fscanf(fileID,['%d' degrees 'C'])

fclose(fileID);

跳過特殊符號

字符串和數字符號之間的轉換。

4、 日期的循環讀取

(1)pause()函數

clear all

fileID= fopen('dateclc.txt','w'); %打開,寫入

while (1)

a=datestr(now,31)

fprintf(fileID,'%s\r\n',a);

pause(5)%每隔5秒寫入一條日期

end

5、timer()函數

(1)timer定義

設置timer()屬性,

TaskTimer=timer('Name','FebirdTimer','TimerFcn',@ExecuteTask,'ErrorFcn',@ExecuteError,'Period',1,'ExecutionMode','fixedrate');

其中 TimerFcn 為Timer執行的函數,后面的 ‘@ExcuteTask’ 就是你定義的函數名;同樣 ErrorFcn 也是一樣。

Period 為執行周期,ExecutionMode為執行模式,fixedrate為固定頻率。

TimerFcn 的定義默認必須有兩個參數:function ExcuteTask(obj,eventdata)。其中 obj 為執行該函數所對應的timer對象,eventdata為事件數據,一般里面為具體時間。

當需要在 ExcuteTask 中傳入參數的時候,那么Timer可以這樣定義:set(t,'TimerFcn',{@ExecuteTask,var1});那么這時函數定義應該 ? ? ?為:?functionExcuteTask(obj,eventdata,var1)

ExecutionMode???執行的模式,就是確定TimerFcn執行周期計算的始末點

’singleShot’????:只能執行一次,故Period屬性不起作用,其他模式都可以執行多次

‘fixedSpacing’??:上一次TimerFcn執行完畢時刻到下一次TimerFcn被加入隊列時刻之間的間隔

‘fixedDelay’????:上一次開始執行到下一次被加入隊列之間的間隔

‘fixedRate’?????:前后兩次被加入到執行語句隊列時刻之間的間隔

TasksToExecute????執行次數:TimerFcn被執行的次數,默認為1次,設置多次時需要設置執行周期Period

StartDelay???啟動時延:從啟動Timer開始到第一次把TimerFcn的加入到Matlab的執行語句隊列中去的時延, 默認值為0s

clear all

htimer=timer('TimerFcn','disp(''Hello World!'')', 'Period', 2,'executionmode','fixeddelay','TasksToExecute',5)

start(htimer)

創建日期txt文件,每兩秒寫入txt中一個日期,分別是主體程序,定義的函數和結束程序

clear all

global fileID htimer date1 time1 %全局變量date=datestr(now,'yyyy-mm-dd') %日期,文件名

fileID=fopen([date '.txt'],'w')%創建txt文件

htimer=timer('TimerFcn',@date_my, 'Period', 2,'executionmode','fixeddelay')

start(htimer)

functiondate_my(obj,event)

global fileID htimer date1 time1 %全局變量

date1=datestr(now,'yyyy-mm-dd')

time1=datestr(now,'HH:MM:SS')

[a,b]=weekday(now,'long')

fprintf(fileID,[date1' ' time1 ' ' b '\r\n'])

end

global fileID htimer date1 time1

stop(htimer) %暫停程序

fclose(fileID)%關閉txt文件

改進程序,加入表頭

clear all

global fileID htimer date1 time1 %全局變量date=datestr(now,30); %日期,文件名

fileID=fopen([date '.txt'],'w');%創建txt文件

%fprintf(fileID,[date1' ' time1 ' ' b '\r\n'])

fprintf(fileID,'%6s%6s%6s\r\n','日期','時間','星期');

htimer=timer('TimerFcn',@date_my, 'Period', 2,'executionmode','fixeddelay')

start(htimer)

clear all

global fileID htimer date1 time1 %全局變量date=datestr(now,30); %日期,文件名

fileID=fopen([date '.txt'],'w');%創建txt文件

fprintf(fileID,['日期' ' ' '時間' ' ' '星期' '\r\n'])

%fprintf(fileID,'%6s%6s%6s\r\n','日期','時間','星期');

htimer=timer('TimerFcn',@date_my, 'Period', 2,'executionmode','fixeddelay')

start(htimer)

以上是分別用規定長度和空格兩種方式將表頭輸入,

利用timer畫圖動起來

clear all

t=timer('Name','CircleTimer','TimerFcn',@CircleTask,'Period',1,'ExecutionMode','fixedspacing');

%本句解釋成中文就是:

%t=timer(計時器名字是啥?,叫CircleTimer,要輸入的TimerFcn回調函數是啥? ,

%用CircleTask這個函數,每次隔多久運行?,一秒,

%執行時間間隔的模式是什么?,上次執行完畢到這次執行計時);

ud=3;

t.UserData=ud;

start(t);

functionCircleTask(obj,event)

event_time=datestr(event.Data.time) %使用event對象的data的time屬性獲得系統當前時間,并轉換成字符串

d=event_time(19:20) %由于本身保存的是年月日小時分鐘秒,但我只需要秒的數據,因此單獨取出

d=str2double(d) %將字符串轉換成數字

alpha=0:pi/20:pi/20*d %角度[0,2*pi]

ud=obj.UserData; %使用obj對象的UserData屬性傳參

R=ud;%半徑

x=R*cos(alpha);

y=R*sin(alpha);

axis equal

%axis([-4 4 -4 4])

plot(x,y,'o-')

stop(t)

沒有使用全局變量,

6、交互設計

6.1 寫入

字符串寫入

clear all

clc

prompt = 'What is your string? ';

str = input(prompt,'s')

數字寫入

clear all

clc

prompt = 'What is the original value? ';

x = input(prompt)

y = x*10

6.2 輸出

clear all

clc

A = [15 150];

S = 'Hello World.';

disp(A)

disp(S)

6.3 組合使用

clear all

clc

A = input('Input a number:');

disp(['You input number is:',num2str(A)]);

注意,中括號括起來,還有,數字轉字符串。

clear all

clc

A = input('Input:','s');

disp(['You input:',A]);

總結

以上是生活随笔為你收集整理的matlab读int16读文件_MATLAB——文件读写(1)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。