Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Combining 2 two-dimensional cell arrays in MATLAB

  1. Mar 9, 2009 #1
    Hi

    I'm quite new to MATLAB and I'm stuck on a problem which I think is probably relatively simple. Any help much appreciated!

    Right, I have 2 cells, both of dimension 51x1 called n_cbc and n_load. Each of the 51 rows in the n_cbc cell contains a 5x1 matrix. Each of the 51 rows in the n_load cell contains a 3x1 matrix.

    What I want to do is create a new 3rd cell that contains the data from these 2 cells. It should also be of dimension 51x1 and each row should now have a 8x1 matrix (the first 5 values from n_cbc and the next 3 values from n_load).

    I always end up with a 51x2 cell, but I want all values in the one column.

    Hope that made sense. Any ideas?

    Thanks!
     
  2. jcsd
  3. Mar 9, 2009 #2

    MATLABdude

    User Avatar
    Science Advisor

    I'd suggest using a 'for' loop (you probably want to do this in an m-file). In it, you'd iterate 51 times and within each iteration, you'd concatenate the two vectors (e.g. c = [a, b];)

    For loop:
    http://www.mathworks.com/access/helpdesk/help/techdoc/ref/for.html

    M-files (in case you didn't know):
    http://www.mathworks.com/access/helpdesk/help/techdoc/learn_matlab/f4-2525.html#f4-2543 [Broken]
     
    Last edited by a moderator: May 4, 2017
  4. Mar 17, 2009 #3
    ok, thanks. it worked using this

    for i = 1:51
    [nodes{i}] = [n_cbc{i};n_load{i}];
    end
     
Know someone interested in this topic? Share this thread via Reddit, Google+, Twitter, or Facebook