times function for argument of type cell?

1 view (last 30 days)
I have an argument of type cell (2785 x 20) and I need to multyply every cell per 100 and divide it per 785. Thus I need a function like times for vectors

Accepted Answer

Star Strider
Star Strider on 31 Aug 2021
It is necessary to include the cell array as an argument to cellfun:
C = num2cell(randi(9,4, 5))
C = 4×5 cell array
{[2]} {[2]} {[7]} {[7]} {[2]} {[9]} {[8]} {[1]} {[5]} {[4]} {[1]} {[4]} {[4]} {[9]} {[7]} {[3]} {[5]} {[8]} {[7]} {[4]}
percentages = cellfun(@(x)times(x,100/787), C)
percentages = 4×5
0.2541 0.2541 0.8895 0.8895 0.2541 1.1436 1.0165 0.1271 0.6353 0.5083 0.1271 0.5083 0.5083 1.1436 0.8895 0.3812 0.6353 1.0165 0.8895 0.5083
.
  4 Comments
Chiara Scarpellini
Chiara Scarpellini on 1 Sep 2021
Operator '*' is not supported for operands of type 'cell'
Walter Roberson
Walter Roberson on 1 Sep 2021
Edited: Walter Roberson on 1 Sep 2021
What is the output of
unique(cellfun(@class, matrix_substances, 'uniform', 0))
The message you are getting suggests that there is at least one location inside matrix_substances where the entry is a cell array instead of being a single number or [] .

Sign in to comment.

More Answers (0)

Categories

Find more on Creating and Concatenating Matrices in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!