How can I equate all values of one vector to another and get the value ? Please find the example below
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
Rakesh Yadav Kodari
am 18 Feb. 2019
Kommentiert: Jos (10584)
am 18 Feb. 2019
If I have
dataA = [1,2,3,4,5,6,7,8,9];
dataB = [0.1,0.2,0.3,0.4,0.5,0.6,0.7,0.8,0.9,1];
I need to equate for example: 1 = 0.1, 2=0.2, 3=0.3 so that if I ask value(7) it should display 0.7
Thank you in Advance.
3 Kommentare
Rik
am 18 Feb. 2019
If your data is already paired, what exactly do you want to do? Mathematically it doesn't really make sense to equate them, as they are not equal. What do you want to use this for? Maybe then we can help you solve that problem instead.
Akzeptierte Antwort
Andrei Bobrov
am 18 Feb. 2019
Bearbeitet: Andrei Bobrov
am 18 Feb. 2019
dataA = [-496,-636,-52,175,-84,-248,-555,-423,34,-174]';
dataB = [-0.399609375000000,-0.512402343750000,-0.0418945312500000,...
0.140991210937500,-0.0676757812500000,-0.199804687500000,...
-0.447143554687500,-0.340795898437500,0.0273925781250000,-0.140185546875000]';
x = [-636,-84,34];
[lo,ii] = ismember(x,dataA);
out = dataB(ii(lo));
3 Kommentare
Stephen23
am 18 Feb. 2019
Bearbeitet: Stephen23
am 18 Feb. 2019
@madhan ravi: you are right, but only if all elements of x are members of dataA. Robust programming would not assume this, which is probably why Andrei Bobrov prefers ii(lo), thus allowing for non-member values without causing an error.
If a non-member value is unacceptable to the algorithm then it would still be better to use assert and write a specific error message, rather than just rely on the uninformative "Indices must be positive integers" that would occur otherwise.
Weitere Antworten (1)
Jos (10584)
am 18 Feb. 2019
You can use logical indexing, a very powerful tool in Matlab
tf = dataB == 7
dataA(tf)
4 Kommentare
Stephen23
am 18 Feb. 2019
Bearbeitet: Image Analyst
am 18 Feb. 2019
@Jos: I guess that should be with double equals:
dataB(dataA == -496)
Siehe auch
Kategorien
Mehr zu Whos finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!