matlab中keypressfun,在一个简单的程序中使用MATLAB的'keyPressFcn'

您需要通过匿名函数来做到这一点:

在脚本文件,例如名为test.m:

%Entry Point

clear all

N = 100;

x = randn(1,N);

figHandle = figure(1);

clf(figHandle);

set(figHandle, 'KeyPressFcn', ...

@(fig_obj , eventDat) myFunction(fig_obj, eventDat, x, N));

在一个文件在同一文件夹名为myFunction.m作为test.m

function myFunction(~, eventDat, x, N)

mean = sum(x)/N;

disp(mean);

key = eventDat.Key;

disp(key);

如何从myFunction返回值? 有这样做的few ways。这取决于你想做什么。但很快你可以使用可变的变量,例如containers.Map。这是这样的一个例子。返回的变量是newN。

在脚本文件,例如名为test.m:

%Entry Point

clear all

N = 100;

x = randn(1,N);

% this map will store everything u want to return from myFunction.

returnMap = containers.Map;

figHandle = figure(1);

clf(figHandle);

set(figHandle, 'KeyPressFcn', ...

@(fig_obj , eventDat) myFunction(fig_obj, eventDat, x, N, returnMap));

% wait till gui finishes in this example.

waitfor(figHandle);

newN = returnMap('newN');

% display newN

newN

在一个名为myFunction.m:

function myFunction(handle, eventDat, x, N, returnMap)

mean = sum(x)/N;

disp(mean);

key = eventDat.Key;

disp(key);

newN = 435;

returnMap('newN') = newN;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值