How to apply a relational operator on a cell in MATLAB?

4 vues (au cours des 30 derniers jours)
Haitham AL Satai
Haitham AL Satai le 20 Sep 2022
I would like to know the number of values that are less than 0.0038 in a cell of 41 X 41 double.
For example, I have the cell below:
B = num2cell(rand(41));
When I applied such condition
sum(A(:) < 0.0038)
, it gave me an error, which is Operator '<' is not supported for operands of type 'cell'.
So, do I need to convert the cell to a matrix and apply the operation? Or is there any specific way to use this condition on the cell directly?
  2 commentaires
Stephen23
Stephen23 le 20 Sep 2022
B = num2cell(rand(41));
Why use such an inefficient approach to storing numeric data?
Most likely your task would be much simpler if you used a numeric array.
Star Strider
Star Strider le 20 Sep 2022
Or is there any specific way to use this condition on the cell directly?
Yes.

Connectez-vous pour commenter.

Réponse acceptée

Star Strider
Star Strider le 20 Sep 2022
Use the cellfun and nnz functions —
B = num2cell(rand(41));
A = nnz(cellfun(@(x)x<0.0038, B))
A = 5
.
  4 commentaires
Star Strider
Star Strider le 20 Sep 2022
@Haitham AL Satai — My pleasure!
@Stephen23 — Thank you!
Haitham AL Satai
Haitham AL Satai le 20 Sep 2022
@Stephen23 Thank you for your notice. I got it now. Thank you again.

Connectez-vous pour commenter.

Plus de réponses (0)

Catégories

En savoir plus sur Matrix Indexing dans Help Center et File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by