加载中…
个人资料
fourfire
fourfire
  • 博客等级:
  • 博客积分:0
  • 博客访问:124,565
  • 关注人气:17
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

matlab,一些问题

(2011-12-22 18:14:19)
标签:

杂谈

符号多项式展开:
syms a b c
t = (a+b+c)^2;
expand(t),

将当前坐标轴中显示的图像存放为图片文件:
saveas(gcf,'aaa','png');

设置plot 的点的大小:
hold on; plot(handles.pts(:,1),handles.pts(:,2),'r.','markersize',3); hold off;

线条粗细: 'LineWidth'

设置坐标系显示的范围:
axis([xmin xmax ymin ymax]);

cell:
a = cell(1,10);
a{1} = 'harry';
a{2} = 'potter';

matlab GUI,弹出提示窗口:
msgbox

matlab GUI 中的文件选择对话框:
打开文件
[filename, filepath] = uigetfile( '*.jpg;*.tif;*.png;*.gif;*.bmp;*.*', 'choose imag' );
保存文件
[filename, filepath] = uiputfile( '*.jpg;*.tif;*.png;*.gif;*.bmp;*.*', 'choose image' );

matlab GUI 中将slider改为横向:
直接拖动slider到宽度超过高度,slider就会自动变成横向

matlab GUI 中设置、读取组件属性:
统一使用 get 和 set 函数。例如:
val = str2double( get(handles.ptsEdit,'String') );
set(handles.ptsEdit, 'String', num2str( get(handles.ptsSlider, 'Value') ));

matlab GUI 中,slider步长设置:
例如
set(handles.ptsSlider, 'SliderStep', [tmpNum tmpNum]);
其中 tmpNum 指的是点击箭头、拖动滑块的移动“百分比”。

修改plot函数的绘制颜色:
例如, p = plot(x,y,'b+');  set(p, 'Color', [0 0 0]);

正则表达式:
参见链接链接

结构体:
用struct函数来创建结构体,或者直接在一个变量后加“.”赋值即可。
创建struct数组,通过repmat函数等完成。
(或者写 a.name='harry'; a(100).name = 'potter';等)

matlab中手动点选图片中的点:
    可以使用 ginput 函数,方法是 [x,y]=ginput(3); (选3个点)。这种方法有点不方便,一是因为已经点选的点没有在图片中显示出来,而是因为需要事先指定点的数量。
    更好的方法是使用 getpts 函数,方法是 [x,y]=getpts; 直接点选点,已经选中的点会被标记出来,按 Delete 可以撤销上一次选择,按 Enter 直接结束选择,非常方便。

数字与字符组成字符串:
    可以使用 sprintf 函数,如 a=sprintf('aaa %d',3);
    更方便的方法是使用矩阵符号,如 a=['aaa ' num2str(3)];

符号多项式、合并同类项:
    常用的有 collect、expand、simplify 函数等。
    合并同类项使用的是 collect 函数,例如:
    syms x y
    R2 = collect((x+y)*(x^2+y^2+1), y)
    返回结果是:
    R2 = 
    y^3 + x*y^2 + (x^2 + 1)*y + x*(x^2 + 1)

保存图片:
    如果将图形矩阵保存为图片,可用 imwrite ;如果将当前坐标轴中显示的图形保存为图片,可以使用如saveas(gcf, 'test.png'); 的方法。

一维平滑滤波:
filter函数

二维图像滤波:
高斯核可以用 fspecial 函数产生,滤波可以用 imfilter 或者 conv2 实现。例如:
img = imread('lena.bmp');
f = fspecial('gaussian',[3,3],10);
img_smooth = imfilter(img,f,'same');

显示三维数据点:
scatter3(X,Y,Z,S,C)
S指定每个数据点的半径,C指定颜色(N x 1维向量即可,N为数据点个数)。

键盘输入数据:
input

判断一个变量是否是数(或数组):
isnumeric

matlab GUI之滚动条:
刚创建时是竖向滚动条,只要拖动得宽度超过高度,即会变成横向滚动条。
其属性中的 Min 和 Max 是滚动条的变化范围,属性变量 SliderStep 决定了其变化步长(该变量指百分比)。
以横向滚动条为例,Min=0,Max=100,SliderStep.x=0.01时,步长为1;Min=0,Max=99,SliderStep.x=0.01时,步长为0.99。
读取slider的值并在一个edit中显示:
value=get(hObject,'value');
set(handles.edit1,'string',value);

matlab GUI之pop up menu:


matlab中的清除函数:
clf:清除图像
cla :清除当前axes的绘制内容 
    如果要清除subplot中的某个坐标轴画的内容,写法为:
h1 = subplot(1,2,1); ... cla(h1);
h2 = subplot(1,2,2); ... cla(h2);

clc:清除控制台
clear:清除内存变量

matlab动画:
drawnow 函数(作用类似于 glFlush)
pause 函数

两点连线:
line

全局变量:
用global声明。同一目录下,不同m文件中如果用global声明了相同的变量,可以通用;不同目录的m文件可以通过addpath命令来完成全局变量的数据传递。

生成一个符合正态分布的随机数:
randn
生成一个(0,1)范围均匀分布的随机数:
rand

直方图:
hist函数,例子:
x=-4:0.1:4; y=randn(10000,1); hist(y,x);
也可以写成 n=hist(y,x);
或者 [n,xout]=hist(y,x); bar(xout,n);
bar函数:
例子见上

曲线拟合:
polyfit:多项式拟合
fit:各种方法拟合(曲线或曲面)
cfit:曲线拟合
sfit:曲面拟合
eg,
fitobject = fit(x,y,'smoothingspline','SmoothingParam',0.2);
smoothingspline生成的是平滑拟合曲线,生成的曲线不一定经过控制点;
cubicinterp生成的是三次样条曲线,但生成的曲线一定经过控制点,因此不能减少噪声。

平滑滤波:
imfilter,fspecial

形态学操作:
imerode

matlab中运行C++编译出来的exe:
matlab运行exe使用函数:可以使用open,但open之后不能跟命令行参数;
最好使用dos()函数:
eg,dos('F:\c++Code\mvcImgClone\Release\mvcImgClone.exe harry');

将m文件编译为exe:
参见 http://blog.csdn.net/jkhere/article/details/8906124
mcc -m filename

tic,toc 计时:
例子,
tic;A=[1,2;3,4];B=[5,6;7,8]; x=A/B;toc

startup.m:
在matlab安装目录的matlab.exe所在位置新建一个startup.m。
以后每次开启matlab,都会自动先执行startup.m里面的内容。

matlab,数字前加0显示:
例如,num2str(1,'d')

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有