一些matlb会用到的函数

一笑奈何 提交于 2020-03-01 11:04:25

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像素大小的矩阵,然后再经过图像类型的转换,之后就可以将这个数据转化成图片了;

图像类型转换(uint8、double、im2double、im2uint8和mat2gray)可参考  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');

之后就出图片啦

11.输出figure在一张图显示

subplot(m,n,p)%

m 代表行

n 代表列

p 代表的这个图形画在第几行、第几列。注意可以选俩甚至更多,例如subplot(2,2,[1,2])

 

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!