How can I select y data given a certain x value?
1 回表示 (過去 30 日間)
古いコメントを表示
FRANCESCA ROSSI
2019 年 11 月 19 日
編集済み: KALYAN ACHARJYA
2019 年 11 月 19 日
Hi,
The attached files contains two columns: the first contains voltage data, while the second current data. I would like to select only those current data whose potential is -1.70007 or -1.7001, depending on the rounding of the value. I am trying like this, but it never enters in the first condition loop, even if I know there are some values with V=-1.7001.
Thank you fo your time
Francesca
clear all
load Zn1.txt
Zn1_data=Zn1;
V_Zn1=Zn1_data(:,1);
A_Zn1=Zn1_data(:,2);
for i=1,length(V_Zn1)
if V_Zn1(i)==-1.7001
AA_Zn1(i)=A_Zn1(i);
else
AA_Zn1(i)=0;
end
end
0 件のコメント
採用された回答
KALYAN ACHARJYA
2019 年 11 月 19 日
編集済み: KALYAN ACHARJYA
2019 年 11 月 19 日
load Zn1.txt
Zn1_data=Zn1;
V_Zn1=Zn1_data(:,1);
A_Zn1=Zn1_data(:,2);
AA_Zn1(find(V_Zn1~=-1.7001))=0;
Is This?
"I would like to select only those current data whose potential is -1.70007 or -1.7001"
Edited:
load Zn1.txt
Zn1_data=Zn1;
V_Zn1=Zn1_data(:,1);
A_Zn1=Zn1_data(:,2);
idx=(find(V_Zn1==-1.7007 | V_Zn1==-1.7001));
A_new_data=A_Zn1(idx);
A_new_data
6 件のコメント
KALYAN ACHARJYA
2019 年 11 月 19 日
編集済み: KALYAN ACHARJYA
2019 年 11 月 19 日
Please note on floating points number and here Read the @Stevan's Answer also (Just below). Please check with other known non decimal numbers, any issue let me know?
その他の回答 (2 件)
David Hill
2019 年 11 月 19 日
AA_Zn1=Zn1_data(:,1).*(Zn1_data(:,1)==-1.7001|Zn1_data(:,1)==-1.70007);
2 件のコメント
Steven Lord
2019 年 11 月 19 日
What you're seeing is the first example in the "Avoiding Common Problems with Floating-Point Arithmetic" section on this documentation page. Be very, very careful when using == (which performs exact, down-to-the-last-bit comparison) on floating point numbers. Use a tolerance or use ismembertol.
a = 0:0.1:1;
% ==
a == 0.3 % all elements are false
a(4) - 0.3 % small but not EXACTLY zero
% Tolerance -- eps is "close enough" in this case
abs(a-0.3) < eps % one element is true, the rest are false
% Ismembertol
ismembertol(a, 0.3) % one element is true, the rest are false
0 件のコメント
参考
カテゴリ
Help Center および File Exchange で Logical についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!