# How to find the (x,y) combinations that make z=0?

23 ビュー (過去 30 日間)
Franziska 2019 年 9 月 16 日

Hi Everyone
I have a matrix Z(i,j) that is a function of X and Y. Surface and contour plot look fine, but are difficult to interpret.
Is there a way to plot a function of X and Y , such that Z is equal to zero (or as close to zero as possible, since non of the elements in the Z matrix is actually zero)? What I'd like to find out is for which combinations of X and Y the Z-value is above and below zero.
My code is very long, but I did something like this to get matrix Z:
X=linspace(a,b)
Y=linspace(c,d)
for i = 1:numel(X)
Z(:,i) = functionZ(X(i))
%Functionhandle functionZ:
Z(j) = %functionZ(X)
Y=linspace(c,d)
for j = 1:numel(Y)
Z(j)= %function with parameter X
end
end
thanks in advance for any tips!
##### 2 件のコメント表示非表示 1 件の古いコメント
Franziska 2019 年 9 月 17 日
It does, but it does not give me the 'exact' zero-isocontour, and the contour plot is difficult to interpret, since there is one extreme peak. what I am looking for is a good way to report the result, that is the XY values for which Z is above / below zero.
Edit: Found a way:
to find the iso-countourline for Z=0
v=[0,0]
contour(X, Y, Z, v)
Thanks so much for giving me the crucial hint!

サインインしてコメントする。

### 採用された回答

Kevin Phung 2019 年 9 月 16 日

Correct me if I am misinterpreting your goal:
You have a function z(x,y).
You are trying to find the values of x and y that give you some particular values of Z, in this case very close to 0. You can try something like this:
% define some condition for Z values, in this case I want to look for all Z values in my
% Z matrix that are between 0 and 0.001.
% find() those values, and use ind2sub in order to grab the [row,col] pairs.
[x_ind,y_ind] = ind2sub(size(Z),find(and(Z=<0.001,Z>0 )));
xy_pairs = [X(x_ind) Y(y_ind)] % this will give you the x and y pairs
edit: you have already accepted my answer, but I forgot to include an '=' sign

サインインしてコメントする。

### その他の回答 (1 件)

Matt J 2019 年 9 月 16 日

サインインしてコメントする。

### Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by