Finding common x values along with the corresponding y values.

1 次查看(过去 30 天)
I have to sets of data, First set comprises of x_exp and y_exp. And second set comprises of x_sim and y_sim. They are as follows,
x_exp=[980;1000;1020;1040;1040];
y_exp=[0.003;0.10;0.020;0.008;0.002];
x_sim=[920;940;960;980;1000;1020;1040;1040];
y_sim=[0.005;0.003;0.0010;0.0025;0.0050;0.008;0.010;0.020];
I want to find the common values between x_exp and x_sim along with the corresponding y_sim values.
The result that I expect is
x_sim=[980;1000;1020;1040;1040];
y_sim=[0.0025;0.0050;0.008;0.010;0.020];

采纳的回答

Yasasvi Harish Kumar
Hi,
Try something like this,
t = 1;
for i =1:length(x_exp)
for j = 1:length(x_sim)
if x_exp(i) == x_sim(j)
x(t) = x_sim(j);
y(t) = y_sim(j);
t = t+1;
break
end
end
end
x and y are your results.
Regards

更多回答(1 个)

Jan
Jan 2019-2-26
[match, index] = ismember(x_exp, x_sim)
result = y_sim(index(match))
A problem is the repeated value:
x_exp = [1040; 1040]
x_sim = [1040; 1040];
y_sim = [0.010; 0.020];
ismember uses the first occurrence. If you want to use a found value once only, you have to write some special code, which considers this. Then start with Yasasvi Harish Kumar's solution and overwrite a found x_sim value.

类别

Help CenterFile Exchange 中查找有关 Argument Definitions 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by