matlab的基本语法规则_【经验交流】matlab自定义回调函数语法规则

给出我今天学到的两个例子来说明两种用法:

(1)set(h, 'StartFcn', @myfile)型

function [varargout] = XIE_bwmorphfig(Size, varargin)

h = figure('name', 'test', 'numbertitle', 'off', 'menubar', 'none', ...

'units', 'normalized', 'position', [0.14 0.18 0.72 0.64]);

Matrix = [0.5 0.5 0.5];

uipanel('position', [0 Matrix], 'backgroundcolor', [0.8 0.8 0.8]);

axes1 = subplot('position', [0 Matrix]);

set(axes1, 'visible', 'on');

uipanel('position', [0.5 Matrix], 'backgroundcolor', [0.8 0.8 0.8]);

axes2 = subplot('position', [0.5 Matrix]);

set(axes2, 'visible', 'on');

radio1 = uicontrol('style', 'radio', 'Tag', 'radio1', ...

'units', 'normalized', 'position', [0.1 0.3875 0.2 0.1], ...

'backgroundcolor', [0.8 0.8 0.8], ...

'string', 'doit', 'FontSize', 16, ...

'callback', {@doit,axes1});

global im;

im = imread('I.jpg');

imshow(im);

function doit(src,eventdata,arg1)

global im ;

axes(arg1);

im = rgb2gray(im);

imshow(im);

(2)set(h, 'StartFcn', 'myfile')型

function [] = XIE_bwmorphfig(varargin)

figure('name', 'test', 'numbertitle', 'off', 'menubar', 'none', ...

'units', 'normalized', 'position', [0.14 0.18 0.72 0.64]);

Matrix = [0.5 0.5 0.5];

uipanel('position', [0 Matrix], 'backgroundcolor', [0.8 0.8 0.8]);

axes1 = subplot('position', [0 Matrix]);

set(axes1, 'visible', 'on');

global axes2 ;

uipanel('position', [0.5 Matrix], 'backgroundcolor', [0.8 0.8 0.8]);

axes2 = subplot('position', [0.5 Matrix]);

set(axes2, 'visible', 'on');

handles.radio1 = uicontrol('style', 'radio', 'Tag', 'radio1', ...

'units', 'normalized', 'position', [0.1 0.3875 0.2 0.1], ...

'backgroundcolor', [0.8 0.8 0.8], ...

'string', 'doit', 'FontSize', 16, ...

'callback', 'doit');

global im;

axes(axes1);

im = imread('01.jpg');

imshow(im);

function doit()

global im axes2 ;

axes(axes2);

im = rgb2gray(im);

imshow(im);

这用需要把回调函数和主程序分别存储。这两个例子由hotboy和zhenghui提供,希望能遇到同样问题的朋友一点启发!

MATLAB 回调函数是一种特殊的函数,它在特定事件发生时被调用。以下是 MATLAB 回调函数语法规则: 1. 回调函数应该是一个独立的函数文件(.m 文件),而不是脚本文件。 2. 回调函数应该以特定的输入参数形式定义,这些参数依赖于特定事件的类型。通常,第一个输入参数是源对象(source object),表示触发事件的对象,接下来的参数是事件数据(event data)。 3. 回调函数可以返回输出参数,这取决于事件的需求。 4. 回调函数应该在定义和注册回调时指定,以确保在特定事件发生时被正确调用。 5. 回调函数应该位于 MATLAB 搜索路径之内,以便 MATLAB 能够找到并正确调用它。 下面是一个回调函数的示例代码: ```matlab % 回调函数定义 function myCallback(src, eventData) % 执行回调操作 disp('Callback function called!'); disp(['Source object: ', src.Name]); disp(['Event data: ', eventData.EventName]); end % 创建源对象 button = uicontrol('Style', 'pushbutton', 'String', 'Click me'); % 注册回调函数 button.Callback = @myCallback; ``` 在上面的示例,`myCallback` 函数作为回调函数被定义,在被调用时会显示一些信息。`button` 对象的 `Callback` 属性被设置为 `@myCallback`,以指定该函数作为按钮点击事件的回调函数。当按钮被点击时,回调函数将被调用执行。 请注意,回调函数的具体语法规则可能会根据特定的事件类型和对象类型而有所不同。上述示例仅为示范目的,请根据实际情况进行适当的调整。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值