How to subtract coloumn vectors of a cell array

1 view (last 30 days)
Dear Community,
I have a cell array, with each cell containing n by m matrix. I would like to use cellfun and minus, and subtract the first coloumn from the second one, and add the value of 1. (like: result=(second coloumn-first coloumn)+1)
Unfortunately I do not exacty understand the nature of cellfun, to solve this.
Please find attached an example cell, and a result.mat showing, what would I like to get, when perform the calculation in the first cell.
Many thanks for you suggestions!
lg

Answers (1)

Stephen23
Stephen23 on 26 Sep 2021
inp = load('mycell.mat').mycell; % input data
fun = @(m) 1+diff(m,1,2); % anonymous function
out = cellfun(fun,inp, 'uni',0) % calculate
out = 12×1 cell array
{100×1 double} {100×1 double} {100×1 double} { 20×1 double} { 20×1 double} { 20×1 double} {124×1 double} {124×1 double} {124×1 double} {101×1 double} {101×1 double} {101×1 double}
out{1} % compare first cell against expected output
ans = 100×1
10 23 34 17 13 3 512 4 10 37
load('result.mat').result
ans = 100×1
10 23 34 17 13 3 512 4 10 37

Categories

Find more on Cell Arrays 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!