【发布时间】:2015-11-22 19:04:34
【问题描述】:
在Matlab中,我一般做的事情比如
f = @(x) x.^2;
xx = 0:.1:1;
ff = f(xx);
所以 f 是一个函数句柄,并且 xx 和 ff 都是 1x11 向量。
但是,如果由于某种原因我需要像这样定义我的函数句柄 f
f = @(x) 1;
并且不要更改 xx 和 ff 的代码,那么 xx 仍然是一个向量,但 ff 不会:它将是一个双精度数。
这当然很烦人,因为我的代码的后续假设 ff 是一个 11x1 向量,所以每当 f 恰好是常量时,我都需要更改我的代码。
所以我的第一个问题是我的代码一开始是否合理。 如果是这样,我应该怎么做才能使其在“常量 f”情况下工作? 如果没有,我应该如何重写?
这无疑类似于 matlab constant anonymous function returns only one value instead of an array 但我在那个帖子中找不到答案。
【问题讨论】:
-
你不需要
f=@(x) ones(size(x));吗?