显示正在使用的变量的值

时间:2013-09-09 13:14:20

标签: matlab

考虑一下这个例子,

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

我想选择对应于存储'd'值的x和y的值! 我该怎么做?

3 个答案:

答案 0 :(得分:3)

如果您希望找到使用d=min(X)找到的最小值的x和y值,我想您要使用:

x(X==d)
y(X==d)

答案 1 :(得分: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)

或者使用bsxfun的清洁版可以删除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)

答案 2 :(得分: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