Octave:在函数内部使用匿名函数

问题描述 投票:0回答:1

Octave中是否可以在函数内部使用匿名函数?我想避免在功能文件和配置文件之间有依赖关系。指向配置文件的链接只能从main.m内部进行。


我的项目具有以下文件结构:

% config.m
ms2kmh = @(v) v * 3.6;
% main.m
source('config.m');
source('application.m');
% application_xy.m
x = 1;
y = 2;
A = function_xy(x, y)
% function_xy.m
function A = function_xy(x, y)
    source('config.m'); % <-- want to avoid this line
    A = x * ms2kmh(y);
end

谢谢

function octave anonymous
1个回答
0
投票

听起来像您正在尝试创建具有状态的对象(在这种情况下,x,y输入和所需的函数句柄)。例如:

% @application_xy/application_xy.m
function Obj = application_xy(x, y, fhandle)
  Obj = struct( 'x', x, 'y', y, 'f', fhandle );
  Obj = class( Obj, 'application_xy' );
end

% @application_xy/function_xy.m
function A = function_xy(Obj, x, y)
    A = Obj.x * Obj.f( Obj.y );
end

% config.m
ms2kmh = @(v) v * 3.6; 

% main.m
MyObj = application_xy(1, 2, ms2kmh );
A = function_xy( MyObj )
© www.soinside.com 2019 - 2024. All rights reserved.