因为读研了,大四进入实验室,使用起来原来没有怎么太接触的MATLAB。自己也没有通过看书等方式学习,只是在实验室看论文看代码的时候进行help或者询问度娘,另外自己在写一些程序的时候也会想想到底有没有更好的实现方式,因为毕竟MATLAB对于一些开发功能的函数封装的比较完善(当然这对于传统的C++等是优势的同时也是劣势),所以自己会查找一些MATLAB自带的函数去减少代码量。现在每天都在整理,不过自己之前一部分因为备份问题遗失了,所以就先写出来这些,以后还是会继续更新的,GO!FISH!
这个命令可以由磁盘符,目录和文件名生成完整的文件路径。看例子就知道了。如果输入:f = fullfile('C:','Applications','matlab','myfun.m')得到结果:f =C:\Applications\matlab\myfun.m
二
dir函数:
获得指定文件夹下的所有子文件夹或文件,并存到文件结构数组中.
调用方式:
dir('.')列出当前目录下所有子文件夹和文件
dir('G:\Matlab')列出指定目录下所有子文件夹和文件
dir('*.m')列出当前目录下符合正则表达式的文件夹和文件
三
exist函数:
exist name等价于 r=exist(name) ,在程序里面这样更加实用0 不存在则返回值1 name 可以是变量名,如果存在,返回值2 函数名、m 文件名,存在则返回值3 mex 文件、dll 文件,存在则返回值4 内嵌的函数,存在则返回值5 p码文件 , 存在则返回值6 目录,存在则返回值7 路径,存在则返回值8 Java class,存在则返回值
A = exist('name','kind')name 可以是变量名,函数名、m 文件名、mex 文件、dll 文件、内嵌的函数、p码文件、目录、路径、Java class
kind可以是 :builtin 内嵌函数class Java classdir 目录file 文件或者目录var 变量
应用举例type = exist('plot') %说明当前目录下存在plot这个内嵌函数type =5X=rand(1,1)X =0.9593
matabc
r=exist('X')r =1
r=exist('X','var')r =1matabc
还有一个非常有用的,曾经在论坛讨论过如何判定一个结构体为空s = structs =1x1 struct array with no fields.
size(s) %用size不好判定ans =1 1
matabc
length(s) %length也一样ans =1
r=exist('s.field') %用exist可以判定r =0四
bitshift(a,b)
表示把a左移b位,所以有:
size(A)函数是用来求矩阵的大小的,你必须首先弄清楚A到底是什么,大小是多少。
比如说一个A是一个3×4的二维矩阵:
1、size(A) %直接显示出A大小
输出:ans=3 4
2、s=size(A)%返回一个行向量s,s的第一个元素是矩阵的行数,第二个元素是矩阵的列数
输出:s= 3 4
3、[r,c]=size(A)%将矩阵A的行数返回到第一个输出变量r,将矩阵的列数返回到第二个输出变量c
输出:r= 3
c=4
4、[r,c,m]=size(A)
输出:r= 3
c= 4
m=1
也就说它把二维矩阵当作第三维为1的三维矩阵,这也如同我们把n维列向量当作n×1的矩阵一样
5、当a是一个n维行向量时,size(A)把其当成一个1×n的矩阵,因此size(a)的结果是
ans 1 n
而不是a的元素个数n
6、size(A,n)
如果在size函数的输入参数中再添加一项n,并用1或2为n赋值,则 size将返回矩阵的行数或列数。其中r=size(A,1)该语句返回的是矩阵A的行数, c=size(A,2) 该语句返回的是矩阵A的列数。
If X = ones(3,4,5), then
[d1,d2,d3] = size (X)
1 = d2 = d3 =
d 3 4 5
But when the number of output variables is less than ndims(X):
[d1,d2] = size (X)
1 = d2 =
d 3 20
The "extra" dimensions are collapsed into a singleproduct.
If n > ndims(X), the "extra"variables all represent singleton dimensions:
[d1,d2,d3,d4,d5,d6] = size (X)
1 = d2 = d3 =
d 3 4 5
d4 = d5 = d6 =1 1 1
一
text()函数:
功能: 在当前轴中创建text对象。函数text是创建text图形句柄的低级函数。可用该函数在图形中指定的位置上显示字符串。
用法: text(x,y,'string')在图形中指定的位置(x,y)上显示字符串string
text(x,y,z,'string') 在三维图形空间中的指定位置(x,y,z)上显示字符串string
text(x,y,z,’string’.'PropertyName',PropertyValue…) 对引号中的文字string定位于用坐标轴指定的位置,且对指定的属性进行设置。表7-6给出文字属性名、含义及属性值。
表7-6
属性名 | 属性说明 | 属性值 |
定义字符串 | ||
Editing | 能否对文字进行编辑 | 有效值:on、off 缺省值:off |
Interpretation | TeX字符是否可用 | 有效值:tex、none 缺省值:tex |
String | 字符串(包括TeX字符串) | 有效值:可见字符串 |
放置字符串 | ||
Extent | text对象的范围(位置与大小) | 有效值:[left, bottom, width, height] |
HorizontalAlignment | 文字水平方向的对齐方式 | 有效值:left(文本外框左边对齐,缺省对齐方式)、center(文本外框中间对齐)、right(文本外框右边对齐) 缺省值:left |
Position | 文字范围的位置 | 有效值:[x,y,z]直角坐标系 缺省值:[](空矩阵) |
Rotation | 文字对象的方位角度 | 有效值:标量(单位为度) 缺省值:0 |
Units | 文字范围与位置的单位 | 有效值:pixels (屏幕上的像素点)、normalized (把屏幕看成一个长、宽为1的矩形)、inches(英寸)、centimeters(厘米)、points (图象点)、da 缺省值:da |
VerticalAlignment | 文字垂直方向的对齐方式 | 有效值:top (文本外框顶上对齐)、cap(文本字符顶上对齐)、middle(文本外框中间对齐)、baseline(文本字符底线齐)、bottom(文本外框底线对齐) 缺省值:middle |
指定文字字体 | ||
FontAngle | 设置斜体文字模式 | 有效值:normal(正常字体)、italic(斜体字)、oblique(斜角字) 缺省值:normal |
FontName | 设置文字字体名称 | 有效值:用户系统支持的字体名或者字符串FixedWidth。 缺省值为 Helvetica |
FontSize | 文字字体大小 | 有效值:结合字体单位的数值 缺省值为:10 points |
FontUnits | 设置属性FontSize的单位 | 有效值:points (1点=1/72英寸)、normalized(把父对象坐标轴作为一单位长的一个整体;当改变坐标轴的尺寸时,系统会自动改变字体的大小)、inches (英寸)、Centimeters(厘米)、Pixels(像素) 缺省值:points |
FontWeight | 设置文字字体的粗细 | 有效值:light(细字体)、normal(正常字体)、demi(黑体字)、Bold(黑体字) 缺省值:normal |
控制文字外观 | ||
Clipping | 设置坐标轴中矩形的剪辑模式 | 有效值:on、off on:当文本超出坐标轴的矩形时,超出的部分不显示; off:当文本超出坐标轴的矩形时,超出的部分显示。 缺省值:off |
EraseMode | 设置显示与擦除文字的模式。这些模式对生成动画系列与改进文字的显示效果很有好处。 | 有效值:normal、none、 xor、 background 缺省值:normal |
SelectionHighlight | 设置选中文字是否突出显示 | 有效值:on、off 缺省值:on |
Visible | 设置文字是否可见 | 有效值:on、off 缺省值:on |
Color | 设置文字颜色 | 有效的颜色值:ColorSpec |
控制对文字对象的访问 | ||
HandleVisibility | 设置文字对象句柄对其他函数是否可见 | 有效值:on、callback、off 缺省值:on |
HitTest | 设置文字对象能否成为当前对象(见图形CurrentObject属性) | 有效值:on、off 缺省值:on |
文字对象的一般信息 | ||
Children | 文字对象的子对象(文字对象没有子对象) | 有效值:[](即空矩阵) |
Parent | 文字对象的父对象(通常为axes对象) | 有效值:axes的句柄 |
Seleted | 设置文字是否显示出“选中”状态 | 有效值:on、off 缺省值:off |
Tag | 设置用户指定的标签 | 有效值:任何字符串 缺省值:’’(即空字符串) |
Type | 设置图形对象的类型(只读类型) | 有效值:字符串’text’ |
UserData | 设置用户指定数据 | 有效值:任何矩阵 缺省值:[](即空矩阵) |
控制回调例行执行程序 | ||
BusyAction | 设置如何处理对文字回调过程中断的句柄 | 有效值:cancel、queue 缺省值:queue |
ButtonDownFcn | 设置当鼠标在文字上单击时,程序做出的反应(即执行回调程序) | 有效值:字符串 缺省值:' '(空字符串) |
CreateFcn | 设置当文字被创建时,程序做出的反应(即执行的回调程序) | 有效值:字符串 缺省值:' '(空字符串) |
DeleteFcn | 设置当文字被删除(通过关闭或删除操作)时,程序做出的反应(即执行的回调程序) | 有效值:字符串 缺省值:' '(空字符串) |
Interruptible | 设置回调过程是否可中断 | 有效值:on、off 缺省值:on(能中断) |
UIContextMenu | 设置与文字相关的菜单项 | 有效值:用户相关菜单句柄 |
二
打开一幅图像后,用鼠标动态选取一个矩形框(ROI——Regions of Interests),然后保存图像数据矩阵,为后续算法处理用。手动获取图片的boundingbox信息:
- figure, imshow('pout.tif');
- h = imrect;
- position = wait(h);
- >> position
- position =
- 20 20 198 174
- >>
返回n和xout,包含有数目频率和间隔位置。可以使用bar(xout, n)来绘制直方图。四
'average'
'disk'
'gaussian'
'laplacian'
'log'
'motion'
'prewitt'
'sobel'
'unsharp'
- a=[1 3 2 5 6 8 5 3];
- [v,p] = findpeaks(a)
P是峰值的index
2 2]x(:)表示将矩阵中的数据以一列输出,即1232;x(:,:)第一个冒号表示输出行,第二个冒号表示输出列x(:,2)结果为:32x(1,:)结果为1 3八gmdistribution.fit函数()%这个灰常难百度到和理解
initdistribution.m #55line
九
A=[1 2; 3 4];B=A;
A.*B=[1*1 2*2;3*3 4*4]=[1 4;9 16]而A*B=[1*1+2*3,1*2+2*4;3*1+4*3,3*2+4*4]=[7 10;15 22]
十
isnan()函数
isnan(A)
A是非数字数值的时候返回1,否则返回0
2014年12月6日
一[~,level]=function();表示function函数中有两个返回值参数,但是只想要第二个的时候就要这么写,因为得到两个参数的效率比这样写低二tic
fucntion()toc计算出函数执行时间
三fprintf()函数fprintf函数可以将数据按指定格式写入到文本文件中。其调用格式为:
数据的格式化输出: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用来指定数据输出时采用的格式
%d 整数
%e 实数:科学计算法形式
%f 实数:小数形式
%g 由系统自动选取上述两种格式之一
%s 输出字符串
matlab写入文件时如何换行,真是个麻烦问题?见下面一个例子就解决了,注意打开文件时的参数是'wt',
A.
%{
若干语句
%}
B.
多行注释: 选中要注释的若干语句, 编辑器菜单Text->Comment, 或者快捷键Ctrl+R
取消注释: 选中要取消注释的语句, 编辑器菜单Text->Uncomment, 或者快捷键Ctrl+T
C.
if LOGICAL(0)
若干语句
end
这个方法实际上是通过逻辑判断语句不执行相关的语句