Hello I work with this data in my program, but if there are empty spots, the program stops itself. I would like to now, how can I say to matlab to ignore these empty values or fill it with the previous value. Thank you so much

 Réponse acceptée

Fangjun Jiang
Fangjun Jiang le 27 Fév 2023

0 votes

You can use isempty(rp) to check, and then ignore as needed.

9 commentaires

Eliska Paulikova
Eliska Paulikova le 28 Fév 2023
But How should I do it. What is a funcion for ignoring it
Stephen23
Stephen23 le 28 Fév 2023
"But How should I do it."
You look at your "program", which presumably you wrote, and find the place where you want to check for the empty array, then include the function ISMEMPTY as Fangjun Jiang suggested. Of course you will need to decide how you want to ignore the empty array (e.g. skip an iteration, return from a function, store the location in a boolean mask, etc.)
We cannot tell you what you how or where because you have not told us anything nor shown us any relevant code.
Eliska Paulikova
Eliska Paulikova le 28 Fév 2023
The code is so large, so I thing it takes a lot you to find the right information. However, I just find the empty value with the function isempty, but now, I dont now, how to skip it.
Stephen23
Stephen23 le 28 Fév 2023
Modifié(e) : Stephen23 le 28 Fév 2023
"However, I just find the empty value with the function isempty, but now, I dont now, how to skip it."
That depends on exactly what your code does with that array. Which we don't know and you won't tell us. So you will need to think about the logic yourself (after all, that is a significant part of writing code): how does your code generate/process that array: does it involve loops and indexing or recursion or simply printing the value to the comment window directly from an array?
Stephen23
Stephen23 le 28 Fév 2023
Modifié(e) : Stephen23 le 28 Fév 2023
@Eliska Paulikova: you still need to decide what you want to do when that array is empty. Perhaps one of:
  • throw an error,
  • use a default value,
  • skip to the next iteration,
  • use an alternative calculation,
  • shorten the output array to not include that iteration.
  • etc.
This is not a question about code, it is about the logic of your algorithm, and what makes sense for your data. Please let us know what you want to do when you get an empty array.
Eliska Paulikova
Eliska Paulikova le 28 Fév 2023
As I said, I would like ro skip to the next iteration
Stephen23
Stephen23 le 28 Fév 2023
"I would like ro skip to the next iteration"
Eliska Paulikova
Eliska Paulikova le 28 Fév 2023
Thank you so much
In the code, you have this line "rp=radiiBright %v pixelech". It does not have the ";" at the end of line so every time "rp" got calculated, it displays at the Command Window as you showed.
You can add this right after to "skip".
if isempty(rp)
continue
end
The "continue" command will jump the execution to the end of the current loop and start executing the next loop.
This might help you avoid the problem at line
"r=fillmissing(rp + 0./(rp~=0), 'linear', 1)".
But it might also cause problem somewhere else.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

Produits

Version

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by