Effacer les filtres
Effacer les filtres

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

5 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)

Tags

Community Treasure Hunt

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

Start Hunting!

Translated by