What is wrong with this code?

2 visualizaciones (últimos 30 días)
Holmbrero
Holmbrero el 20 de En. de 2021
Comentada: Holmbrero el 21 de En. de 2021
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!

Respuestas (1)

Bob Thompson
Bob Thompson el 20 de En. de 2021
I would think you could do this with cellfun and some logic, but I could be wrong.
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.
  1 comentario
Holmbrero
Holmbrero el 21 de En. de 2021
Thank you!
I'll give it a go.
/Anders

Iniciar sesión para comentar.

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Productos

Community Treasure Hunt

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

Start Hunting!

Translated by