【问题标题】:How do I pass a struct field as a function output in MATLAB?如何在 MATLAB 中将结构字段作为函数输出传递?
【发布时间】:2013-08-10 12:26:12
【问题描述】:

我有一个使用结构的函数。我想将结构的一个字段作为函数的输出传递。这是我喜欢做的一个例子:

function MyStructure.myField = my_function(input)
MyStructure.myField = input * 3;

但是,MATLAB 不允许在函数输出中使用点 (.) 表示法。我当然可以通过这样做非常简单地解决这种情况:

function myOutput = my_function(input)
MyStructure.myField = input * 3;
myOutput = MyStructure.myField;

一个简单的解决方法,但我想知道是否有更优雅的解决方案..?

【问题讨论】:

  • 我不明白为什么它是一个结构字段很重要。似乎该结构完全包含在您的函数中,那么为什么要以特殊方式返回它呢?您的解决方法对我来说似乎非常好。
  • 上面的代码是一个说明性的例子。在我的真实代码中,我的结构中有多个字段,并且希望只返回一个字段,而不必在我的代码中添加额外的行。
  • 您的解决方法是做到这一点的唯一方法,没有错。
  • 您是解决方案,而不是解决方法。你没有提供足够的信息来确定你为什么需要你想要达到的目标。

标签: matlab function struct output


【解决方案1】:

你可以做的是忽略函数中的结构,只在函数被调用时使用它。例如:

function output = my_function(input)
% manipulate...
output = 3*input;

当你调用函数时,你使用的是结构体:

myStruct.myField = my_function(input)

【讨论】:

    猜你喜欢
    • 2021-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-04
    • 1970-01-01
    • 1970-01-01
    • 2011-02-13
    • 1970-01-01
    相关资源
    最近更新 更多