user3557054
user3557054

Reputation: 219

Apply formula on Matlab

I have this formula: 100-[(x-1)/(y-1)]*100, and I would like to apply it to a cell-type variable F with A rows * 14 columns in MATLAB, where x = F(:,14) and y = size(F,1).

I have been trying to get there by different attempts, this is one example I tried:

F(:,15) = cellfun(@minus, 100, ((cell2mat(F(:,14)-1)./size(F,1)) * 100));

But it is not working. Could someone help me?

Upvotes: 0

Views: 164

Answers (1)

Amro
Amro

Reputation: 124563

Assuming I understood this correctly, first let me show how to do it the way you described:

% a random cell array of 10 rows x 5 columns
% each cell contains one number
F = num2cell(rand(10,5));

% compute formula on 1st column. Result is a numeric vector
out = 100 - ((cell2mat(F(:,1))-1) ./ size(F,1))*100;

% put result back into cell array (by converting into expected format)
F(:,5) = num2cell(out);

Now since F is a cell array simply containing a scalar number in each of its cells, why don't you just use a regaular numeric matrix instead? That way you avoid calling cell2mat and num2cell back and forth...

Upvotes: 2

Related Questions