1. 程式人生 > >一些matlb會用到的函數

一些matlb會用到的函數

兩種 目錄 矩陣 alpha 文件 for imshow detail 關閉

matlab這種軟件功能很強大,但是都不是常常會用到,尤其是像在學生中。每次用的時候總會把一些基本的函數忘記,還的去網上查。我之前在使用的時候也總結過,可惜在一次數據丟失中全沒了(︶︹︺)。

從現在開始就總結在這裏了。

1.矩陣的聲明格式

A = [12 23 23;12 45 67;]

運行結果:

A =

12 23 23
12 45 67

2.字符串數組的聲明格式

A = [‘2c‘;‘3a‘;‘0f‘]

運行結果:

A =

2c
3a
0f

3.將文件中的數據讀取出來

A = load(‘.\lena.txt’)%純數字數據

4.將文件中的16進制數據讀取出來

A = textread(‘.\lena.txt‘,‘%s‘) %括號裏面有兩部分一個是文件地址,另一個是讀出數據格式 %s是字符串的形式讀出來,讀出來的數據都會加 ‘’ 比如 ‘3d’ ;%d 整數 ;%e 實數:科學算法形式 ; %f 實數:小數形式 %g 由系統自動選擇

5.將16進制轉換為10進制

hex2dec(a) %註意括號裏面若是數字的話要加單引號 (‘23’),可以是數組(a),不需要加單引號,否則會出錯(細節

6.打開文件

lena_dec=fopen(‘lena_dec.txt‘, ‘wt‘);

fopen()是個將數據按指定格式讀入到matlab中的函數。

matlab中fopen函數的常用調用格式
1)fid = fopen(‘filename’)
2)fid= fopen(‘filename’,’permission’)
其中fid是文件代號,filename是要打開的文件名,permission是打開方式,默認的打開方式是只讀模式。第一種情況時選擇默認的打開方式,第二種是認為指定打開方式。
fid是文件的句柄(或者理解為文件的代號),使用fopen()後默認會返回一個文件代號給fid變量,常用的返回值如下:
fid=+N(N是正整數):表示文件打開成功,文件代號是N.
fid=-1 : 表示文件打開不成功。fileID在此次文件關閉前總是有效的。
如果以讀方式打開,matlab首先搜索工作目錄,其次搜索matlab的其他目錄,“permission”是打開方式參數。
打開方式參數由以下字符串確定:
r 讀出
w 寫入(文件若不存在,自動創建)
a 後續寫入(文件若不存在,自動創建)
r+ 讀出和寫入(文件應已存在)
w+ 重新刷新寫入,(文件若不存在,自動創建)
a+ 後續寫入(文件若不存在,自動創建))
w 重新寫入,但不自動刷新
a 後續寫入,但不自動刷新

7.寫入數據到文件

fprintf函數可以將數據按指定格式寫入到指定的文本文件中。
基本格式fprintf(fid, format, A)
fid為文件句柄,從fopen()函數中得到,若缺省,則輸出到屏幕; format用來指定數據輸出時采用的格式:
%d 整數
%e 實數:科學計算法形式
%f 實數:小數形式
%g 由系統自動選取上述兩種格式之一
%s 輸出字符串
A是用來存放數據的矩陣

8.圖像顯示

imshow(medfilt_v) %顯示括號裏面的數組(矩陣)

先將txt中的數據讀取出來放在一個數組中,然後用矩陣轉換函數將數據轉成m*n像素大小的矩陣,然後再經過圖像類型的轉換,之後就可以將這個數據轉化成圖片了;

圖像類型轉換可參考https://blog.csdn.net/fx677588/article/details/53301740

9.矩陣的轉換

reshape(medfilt_v_load, m, n); %轉換前後N=m*n要相同,不然會失敗

10.完整的顯示code

a=textread(‘.\lena.txt‘,‘%s‘);

hex2dec(a);

medfilt_v = reshape(alpha, 200, 200);

medfilt_v = uint8(medfilt_v‘);

imshow(medfilt_v), title(‘medfilt-verilog‘);

之後就出圖片啦

技術分享圖片

一些matlb會用到的函數