matlab钉子链条,Matlab讨论区 - 声振论坛 - 振动,动力学,声学,信号处理,故障诊断 - Powered by Discuz!...

第二,注意vectorize函数。sym对象重载的char函数会把数组的乘除(.*, ./, .^)化成矩阵的乘除(*, /, ^),vectorize会将字符串里的*,/,^全化成.*, ./, .^,如果不这样做,quad函数将会出错,这个问题曾经困扰了我很长的时间:

quad( inline(char(y)), a, b)

??? Index exceeds matrix dimensions.

Error in ==> D:\MATLAB6p5\toolbox\matlab\funfun\quad.m

On line 67  ==> if ~isfinite(y(7))

隐藏的图形对象属性

Matlab的所谓句柄图形(handle graphics)对象的配置是通过许多属性的设置来完成的。有一些帮助文件中没有提到的确实存在的属性。

figure的Toolbar属性

有三个值:'none', 'auto', 'figure'

利用这个属性可以把figure变成没有菜单条却有工具栏的样式:

figure('Menubar', 'none', 'Toolbar', 'figure')

root object的Default属性

在我的Malab环境里,Root object有如下的默认值:

get(0, 'Default')

ans =

defaultFigurePosition: [232 258 560 420]

defaultTextColor: [0 0 0]

defaultAxesXColor: [0 0 0]

defaultAxesYColor: [0 0 0]

defaultAxesZColor: [0 0 0]

defaultPatchFaceColor: [0 0 0]

defaultPatchEdgeColor: [0 0 0]

defaultLineColor: [0 0 0]

defaultFigureInvertHardcopy: 'on'

defaultFigureColor: [0.8000 0.8000 0.8000]

defaultAxesColor: [1 1 1]

defaultAxesColorOrder: [7x3 double]

defaultFigureColormap: [64x3 double]

defaultSurfaceEdgeColor: [0 0 0]

defaultFigurePaperType: 'A4'

defaultFigurePaperUnits: 'centimeters'

实际上,还有一些默认值不会被显示出来:

get(0, 'defaultUicontrolBackgroundColor')

get(0, 'defaultUicontrolForegroundColor')

get(0, 'defaultUicontrolFontName')

get(0, 'defaultUicontrolFontSize')

get(0, 'defaultUicontrolFontWeight')

get(0, 'defaultUicontrolFontAngle')

ans =

0.7725    0.7961    0.8118

ans =

0     0     0

ans =

MS Sans Serif

ans =

8

ans =

normal

ans =

normal

这些默认值有助于在创建用户界面时遵循操作系统颜色,例如:

figure('Color', get(0,'defaultUicontrolBackgroundColor'))

system_dependent('getdata')

system_dependent('getwinsys')

版本

使用version函数可以获得Matlab或工具箱的版本:

v1 = ver('matlab')

v1 =

Name: 'MATLAB'

Version: '6.5'

Release: '(R13)'

Date: '20-Jun-2002'

v2 = ver('control')

v2 =

Name: 'Control System Toolbox'

Version: '5.2'

Release: '(R13)'

Date: '28-Jun-2002'

如果工具箱不存在或没有安装返回空结构

v3 = ver('nonsense')

v3 =

0x0 struct array with fields:

Name

Version

Release

Date

可以利用这个函数让自己的程序在不当的Matlab版本上运行时给出比较体面的警告。另外,有一个帮助中没有提及的内部函数system_dependent可以获得操作系统的版本:

system_dependent('getos')

ans =

Microsoft Windows XP

system_dependent('getwinsys')

ans =

Version 5.1 (Build 2600)

uitools工具集

除了帮助中提及的一些GUI工具函数外,matlabroot\toolbox\matlab\uitools里还有不少帮助里没有提及的函数,建议仔细研究一下(help uitools),例如,makemenu函数可以从字符串中生成菜单:

labels = str2mat( ...

'&File', ...

'>&New^n', ...

'>&Open', ...

'>>Open &document^d', ...

'>>Open &graph^g', ...

'>-------', ...

'>&Save^s', ...

'&Edit', ...

'&View', ...

'>&Axis^a', ...

'>&Selection region^r' ...

);

calls = str2mat( ...

'', ...

'disp(''New'')', ...

'', ...

'disp(''Open doc'')', ...

'disp(''Open graph'')', ...

'', ...

'disp(''Save'')', ...

'', ...

'', ...

'disp(''View axis'')', ...

'disp(''View selection region'')' ...

);

handles = makemenu( figure('Menubar', 'none'), labels, calls);

[本帖最后由 eight 于 2007-4-6 12:50 编辑]

评分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值