【发布时间】:2014-05-27 13:45:13
【问题描述】:
我有一个带有两个整数输入的函数,如下所示:
function f = func(n, m)
a = 2;
b = 1;
f = sqrt((n/a)^2 + (m/b)^2);
end
m 和 n 是整数并且大于或等于零。 f 的前几个值和它们出现的输入如下:
n ----- m ----- f
0 ----- 0 ----- 0
1 ----- 0 ----- 0.5
2 ----- 0 ----- 1
0 ----- 1 ----- 1
1 ----- 1 ----- 1.118
等等。我想获得 f 的前 N 个值及其各自的 n 和 m。在matlab中有没有简单的方法来做到这一点?
【问题讨论】:
-
使用
0, 1 and 2,您似乎可以在f中获得9值,那么如果您的N大于9怎么办?还是你的意思是0, 1, 2, 3 and so on till N? -
在这个例子中,N 是 5,所以我得到了 f 的前 5 个值。正如您所见,在 (2,0) 输入为 (0,1) 后,以获得与前一个最接近的 f 值。所以他们没有任何普遍的秩序。我需要找到 n 和 m 的正确顺序来计算 f 的升序。
-
您可以使用任何答案,然后对结果值
f进行排序并取前 N 个元素。不明显的一点是要计算的网格的大小 n*m 不会丢失任何值,因为它很大程度上取决于函数func。
标签: arrays matlab combinations