How to select which plots to print (or not) out of a cell matrix?

4 visualizzazioni (ultimi 30 giorni)
So I have a cell matrix of 21x14, each cell contains an array with 2 columns of data (x and y for exmaple), I get the average of these values and get just 1 graph out of each cell. The problem is that some of the cells are empty (just zero values), and this depends on my data, so it changes everytime I add new (or remove) data. I don't know how to tell Matlab to print only the plots of nonzero data, other wise I end up with 294 graphs after almost 2 hours of processing time from which a lot are just empty graphs.
Im using a for loop to get the averages and plots of each cell.

Risposta accettata

Abhinav Gupta
Abhinav Gupta il 13 Giu 2021
You can use the built-in method all() of matlab to check, if all array elements are nonzero or not. As every element of your cell matrix is a matrix of say n rows and 2 columns, you could use all() method before plotting the graph for each cell.For eg.
>> B = [0 0; 0 0; 0 0; 0 0]
B =
0 0
0 0
0 0
0 0
>> all(B(:)==0)
ans =
logical
1
>> A = [1 0; 0 0; 1 2; 0 0]
A =
1 0
0 0
1 2
0 0
>> all(A(:)==0)
ans =
logical
0
Plot the graph only when you get 0 as the output.
  1 Commento
Dandro18048
Dandro18048 il 14 Giu 2021
Modificato: Dandro18048 il 14 Giu 2021
Thank you for your answer! Unfortunately when I try to use the function all for the cells I get the following error: Undefined fucntion 'all' for input argumetns of type 'cell'.
I managed to solve the problem using an if statement and an apprach kinda like yours with the help of the function cell2mat. So will accept the answer for being the only useful answer I got!

Accedi per commentare.

Più risposte (0)

Categorie

Scopri di più su 2-D and 3-D Plots in Help Center e File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by