【问题标题】:MATLAB equivalent to Java's {} [duplicate]MATLAB 等效于 Java 的 {} [重复]
【发布时间】:2012-09-25 17:35:08
【问题描述】:

我想知道 MATLAB 与 Java 的 {} 的等价物用于分隔代码块。好像找到这样的东西会很简单,但是在 Google 上搜索 {} 却很难,所以我求助于 StackOverflow。感谢您的帮助!

编辑:我的目标是定义一个多行匿名函数。

【问题讨论】:

标签: matlab


【解决方案1】:

您可以使用 ... 继续行。所以要制作一个多行匿名函数:

fun=@(x)(...
    x.^2+...
    x+...
    1);

fun(1:10)

ans =

 3     7    13    21    31    43    57    73    91   111

另一方面,如果你想在一个匿名函数中有多个语句,这是不可能的。参见例如this other SO post.

【讨论】:

  • 大声笑,这实际上是多行的。但他的意思是带有多个指令的匿名函数(例如 x=2;y=3;z=x*y;)。
  • @Oli 好吧,我刚刚回答了这个问题 :) 这就是为什么我要求让它更精确..
【解决方案2】:

你可以在同一个文件中定义一个子函数来做到这一点:

function y=foo()
  y=1;
  bar(y)
end

function z=bar(y)
  x=2*y; % x stays local
  z=2*x;
end

【讨论】:

  • 另一方面的问题是你不能在简单的脚本中定义函数。这就是为什么 foo 需要成为一个函数。
猜你喜欢
  • 2018-08-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 2016-02-07
  • 2012-12-13
  • 1970-01-01
相关资源
最近更新 更多