MATLAB Answers


how to make polyfit on call arrays?

Asked by ali mohebi on 10 Apr 2019
Latest activity Commented on by ali mohebi on 10 Apr 2019
i have a b=cell(1,32). each cell in b contains a matrix of three rows but, the number of columns may differ from one cell to other. cell contents are double arrays.i want to extract second row of cells, punch them together and save it in one column of a matrix. also for the third row the same procedure is needed and finally polyfit them against each other.
any idea?


What does 'punch them together' mean? How do you plan to save multiple columns of data into a single column?
You say you want to do the same procedure for the third row. Again, how do you plan to put multiple columns of data into a single column? And where are you saving this? The second column of your matrix?
It might be easiest if, for a sample cell of data (3xn matrix of doubles), you show us an example of what you want the code to do.
Apology, that is saving in one 'row' not column.I have attached just one cell out of 32 (the original fie is not in xlsx format). As u see it contains three rows and 11 columns (all 32 cells have three rows) but, other cells may have different column numbers. Now i want to extract the first row of all cells and save them in one 'row'. (by 'punch them together', I mean after extraction of first row of first cell,the extracted first row of second cell comes after it and this continues till the end). Same is done for second rows of cells. Now we have two rows of the same length which should be polyitted against each other. any question is pleased.

Sign in to comment.


1 Answer

Answer by Guillaume
on 10 Apr 2019
 Accepted Answer

It sounds like by punch you mean horizontally concatenate. In which case, what you want is easy to do:
%b a cell array of 3xN matrices
joined = [b{:}]; %can also use cell2mat(b) iif b is a row vector cell array
polyfit(joined(:, 3), joined(:, 2), degree)

  1 Comment

Great thanks, Guillaume.

Sign in to comment.