MATLAB Answers


Confusion with adding to cell array

Asked by Harold
on 20 May 2013

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.



2 Answers

Answer by Walter Roberson
on 20 May 2013
 Accepted answer
linesegs(2,:) = mat2cell(B, 1, [2 2]);


Walter Roberson
on 21 May 2013

You should consider using cellfun() instead of arrayfun()

Image Analyst
on 21 May 2013

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.

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.

Answer by Amith Kamath
on 20 May 2013

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

  1 Comment

Walter Roberson
on 20 May 2013

Note that is not "the next row".

Discover MakerZone

MATLAB and Simulink resources for Arduino, LEGO, and Raspberry Pi test

Learn more

Discover what MATLAB® can do for your career.

Opportunities for recent engineering grads.

Apply Today

MATLAB Academy

New to MATLAB?

Learn MATLAB today!