0

考虑这个例子,

    x=rand(5,1)
    y=rand(5,1)
    X=x.^2+y.^2
    d=min(X)

我想选择与正在存储的“d”值相对应的 x 和 y 值!我怎么做?

4

3 回答 3

3

如果您正在寻找使用我发现的最小值的 x 和 y 值,d=min(X)我认为您想使用:

x(X==d)
y(X==d)
于 2013-09-09T13:25:50.043 回答
0

想了想,我想这就是你的意思。您需要 和 的值,xy将创建由 . 返回的最小值min(X)。下面的代码将执行此操作

x=rand(5,1);
y=rand(5,1);
[xx,yy] = meshgrid(x,y);
X=xx.^2+yy.^2;
[i,j] = find(X == min(X(:)));
minX = x(i)
minY = y(j)

或者有一个更清洁的版本 usingbsxfun删除了meshgrid

x=rand(5,1);
y=rand(5,1)';
multFunc = @(x,y) x.^2+y.^2;
X = bsxfun(multFunc,x,y);
[i,j] = find(X == min(X(:)));
minX = x(i)
minY = y(j)
于 2013-09-09T13:28:53.997 回答
0
x=rand(5,1);
y=rand(5,1);
X=[x.^2+y.^2 x y ]; %Put all together
d=find(X(:,1)'==min(X(:,1))); %Get row of minimum

X(d,2:end) %gives you x & y
于 2013-09-09T13:59:36.183 回答