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

1 vue (au cours des 30 derniers jours)
Dandro18048
Dandro18048 le 13 Juin 2021
Modifié(e) : Dandro18048 le 14 Juin 2021
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.

Réponse acceptée

Abhinav Gupta
Abhinav Gupta le 13 Juin 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 commentaire
Dandro18048
Dandro18048 le 14 Juin 2021
Modifié(e) : Dandro18048 le 14 Juin 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!

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur 2-D and 3-D Plots dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by