Confusion with adding to cell array

I have a cell array with the structure as such,
linesegs = [1x2 double] [1x2 double]
I do some calculations on with some other data that is sent to a function within the current program using a function handle. This results in the following structure within the function.
B = [0 0 1 1];
I want insert this array in the next row of linesegs. Basically B would be split into two cells, one containing [0 0] and the other [1 1].
Everything that I've tried seems to be failing.

 Accepted Answer

linesegs(2,:) = mat2cell(B, 1, [2 2]);

6 Comments

Harold
Harold on 20 May 2013
Edited: Harold on 20 May 2013
I have actually tried this and I keep getting this error,
Error using mat2cell (line 107) Input arguments, D1 through D2, must sum to each dimension of the input matrix size, [1 1].'
I should also note, that after the calculations are finished in the function the output is returned as a 1x1 cell.
I just figured this out. After the function, I convert the cell to a matrix. Then I convert the matrix back to a cell and I get the format I need.
[1x2 double] [1x2 double]
My function is called by means of a function handle that I created, which points to a function that does the calculations I need. The function handle is called by arrayfun.
You should consider using cellfun() instead of arrayfun()
Why are you messing around with the complication of a cell array anyway? As I see it, a regular numerical matrix would handle these line segment coordinates just fine, and be a lot simpler.
Harold
Harold on 21 May 2013
Edited: Harold on 21 May 2013
I will have to post up my program that I'm working on since I am having some more problems with it as well. I well edited this post with the link in a bit.
could some help me in this issue above

Sign in to comment.

More Answers (1)

This should work:
a = {[0 0], [0 0]}
b = [1 2 3 4]
a{1} = b(1:2) %choose the first two elements from b and assign to first in a.
a{2} = b(3:4) %choose third and fourth

Products

Community Treasure Hunt

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

Start Hunting!