Compare two vector arrays and if they match set vector array 2 = nan?
1 Ansicht (letzte 30 Tage)
Ältere Kommentare anzeigen
MKM
am 11 Feb. 2022
Kommentiert: Arif Hoq
am 11 Feb. 2022
So i have two arrays the same size:
time = [0,0,0,0,2,3,4,5,5,6,7,8]';
solution = [1,2,0,0,1,1,2,2,2,0,0,0];
What would be the best way to compare the two and if both are the same make solution 0 = nan;
So the final outcome i would like is solution = [1,2,nan,nan,1,1,2,2,2,0,0,0];
would i use a function such as:
if strfind(time,solution)==0
Do something?
Thanks in adavnce!
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 11 Feb. 2022
time = [0,0,0,0,2,3,4,5,5,6,7,8]
solution = [1,2,0,0,1,1,2,2,2,0,0,0]
outcome = solution;
outcome(solution == 0 & time == 0) = nan
It is not clear what you want to have happen in positions where the values are equal, but the values are not 0.
3 Kommentare
Walter Roberson
am 11 Feb. 2022
solution(time ==0 & solution==0) = nan;
if ~any(isnan(solution)); return; end
Weitere Antworten (1)
Arif Hoq
am 11 Feb. 2022
Bearbeitet: Arif Hoq
am 11 Feb. 2022
Try this...
time = [0,0,0,0,2,3,4,5,5,6,7,8];
solution = [1,2,0,0,1,1,2,2,2,0,0,0];
[idx]=find(time==solution);
solution(idx)=[NaN NaN]
2 Kommentare
Stephen23
am 11 Feb. 2022
FIND is not required, logical indexing is simpler and more efficient.
It would be better to allocate a scalar NaN.
Siehe auch
Kategorien
Mehr zu Logical 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!