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;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值