What is wrong with this code?
1 vue (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Why is this code not exchanging all negative numbers in Raddidifference and Truedist to NaN? Size1 is just the size of the cell array.
And also, can it be done without looping?
for n=1:Size1(2)
for k=1:Size1(1)
for i=length(Radiidifference{k,n})
R{k,n}=Radiidifference{k,n}
if R{k,n}(i,1)<0
Radiidifference{k,n}(i,1) = NaN
Truedist{k,n}(i,1:2) = NaN
end
end
end
end
Any help would be greatly appriciated!
0 commentaires
Réponses (1)
Bob Thompson
le 20 Jan 2021
cellfun(@(s) s((1:end)<0,1) = NaN,Radiidifference);
cellfun(@(s) s(Radiidifference{s}==NaN)=NaN,Truedist);
I haven't tested this, and I'm specifically not sure about the second portion, but the concept should be sound.
It technically still loops, that's what cellfun does, but it does clean things up a bit.
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!