Matlab常用操作、绘图等小知识
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Matlab 小知识
1、翻转fliplr(左右)、flipud(上下)
fftshift()上下左右
fftshift(,1)对行(row)同时操作,引起列的变化(不是简单的上下) 类似fpliud
fftshift(,2)对列(column)同时操作,引起行的变化(不是简单的左右) 类似fplilr
eg:a=[1 2 3;4 5 6; 7,8 9];
fliplr=321
654
987
flipud=
789
456
123
fftshift=978
312
645
fftshift(a,1)=
789
123
456
fftshift(a,2)=
312
645
978
2、data:Naz*Nrg,行为方位向,列为距离向
fft(,[],1)同时对一列进行fft,在SAR数据处理中为方位向FFT,变换到距离时域,方位频域(距离-多普勒域)== fft()
fft(,[],2)同时对一行进行fft,在SAR数据处理中为距离向FFT,变换到距离频域,方位时域。== fft(x.’).’
fft(,[],1) + fft(,[],2) = fft2()
3、conj(共轭) conv(卷积)
4、imagesc,colormap(gray)
5、转置:“’” 对于复数为共轭转置,若要只转置不取共轭,则应该是“.’”
对于实数,“’”即可实现转置。
6、对于有复数j的程序,在循环中切忌再次使用j作为循环变量,同理,不可再次定义变量j进行其他运算。
7、算法优化:
a) sinc(1:100)比单独计算sinc(1)…sinc(100)快N倍;
b) 如果遇到a^2*b^2,则可以先计算(a*b)再对乘积求平方;
8、eps 计算机最小正数,在pc机上,它等于2e-52。
9、保存的指令格式
(1)save 工作间中的所有变量保存在磁盘上名为matlab.mat 的文件中。(2)save [文件名] [变量名] 将指定的变量保存在指定文件中,如:
save temp x y z 把x,y,z 这三个变量保存在文件temp.mat 中。在下次加载MATLAB 时可以利用load 指令将保存在文件中的变量恢复到工作间中其格式有:
(1)load 将保存在matlab.mat 中的变量装入到MATLAB 工作间中。
(2)load [文件名] [变量名] 从指定的文件中将指定的变量装入。
save e:\mydir\data AR
load e:\mydir\data AR
10、reshape(变量,行,列)
11、取整函数:
fix朝零方向取整ceil 朝正无穷大方向取整
floor朝负无穷大方向取整round 四舍五入到整数
12、rand产生在0~1之间均匀分布的随机数;每调用一次给一个新的数值。
rand产生零均值、单位方差的正态分布随机数。
13、[z,i]=max(a),a为向量;则z为最大值,i为第一个最大值的位置
14、ROIPOLY 学习用于点目标分析,编写点目标分析函数
15、figure(i):图像显示为figure i;
figure(‘name’,’****’):显示为名为’****’的图像,即给图像加名字;
16、strcat:strcat('a','b') = ab;
cat(DIM,a,b):
DIM = 1,b接在a的下面,列连接行增加;
DIM = 2,b接在a的后面,行连接列增加;
17、图像输出
imwrite(A,’F:/photo.jpg’,jpg); 其中,A为矩阵
saveas(gcf, ’F:/photo.jpg’,jpg);其中,gcf获取当前图像
18、不显示坐标轴:axis off
图像充满绘图区:
set(gca,'looseInset',[0 0 0 0]);
set(gca,'LooseInset',get(gca,'TightInset'));
set(gca,'units','normal','pos',[0 0 1
1],'PlotBoxAspectRatioMode','auto','DataAspectRatioMode','auto');
% 保存图像,不带坐标轴
plot(rand(100,1))
axis off
saveas(gcf,'curve1.bmp')
19、matlab调用VS生成的exe
[exe位置、输入文件、输出位置]
comd =['F:\IECAS\SIFT\SIFT_registration\x64\Debug\SIFT_registration.exe
F:\IECAS']
system(comd)
20、squeeze:除去size为1的维度,如果无为1的维度,则不发生改变。
如:size(A)=[4,1,3]; B = squeeze(A);则size(B)=[4,3];
size(A)=[4,2,3]; B = squeeze(A);则size(B)=[4,2,3];
21、sub2ind:该函数用于把矩阵中的元素全部下标标识转换为该元素在矩阵中对应的单下标标识。
ind2sub:该函数用于把矩阵中的元素单下标标识转换为该元素在矩阵中对应的全部下标标识。
如:A=[1,2,3;4,5,6;7,8,9];f = sub2ind(size(A),2,3); f = 8;将第二行第三列的数(6),从第一列顺次数过去(6在第八个数上(与矩阵A的值无关));
[i,j]=ind2sub(size(A),8); i=2,j=3;
22、linspace
meshgrad
23、矩阵乘法运算:matlab中分为“乘积”与“点乘”,而在实际公式中并无点乘,只有乘积一种运算;