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

 采纳的回答

Fangjun Jiang
Fangjun Jiang 2023-2-27

0 个投票

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

9 个评论

But How should I do it. What is a funcion for ignoring it
"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.
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.
"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?
@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.
As I said, I would like ro skip to the next iteration
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.

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Multidimensional Arrays 的更多信息

产品

版本

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by