Row-wise concatenation of a cell array

15 views (last 30 days)
Davis
Davis on 22 Dec 2011
Commented: Sedo on 4 Feb 2023
Apologies for what may be a banal question, but I'm having trouble with the following:
I'm writing code that involves tracking paths and filenames for 1-100 files, which I'm doing with a 2 X N (N = number of files) cell array, where the first row contains the path(s) and the second row contains the filename(s). As entries in the same column represent a single file, I need a way to concatenate every pair of entries (:,N) to assemble full paths in another cell array. Any suggestions on how best to do this (without loops, which I'm trying to avoid, unless I shouldn't be)?
Thanks!
-Davis
Thanks!

Answers (1)

Andrei Bobrov
Andrei Bobrov on 22 Dec 2011
try this code, I can not test it, now do not have access to MATLAB
data - your cell array (size 2xN)
out = arrayfun(@(i1)fullfile(data{:,i1}),(1:size(data,2))','un',0);
  5 Comments
Neon Argentus
Neon Argentus on 15 May 2020
For a data cell containing {'File_name', 'File_extention'} which is Nx2, then you can create a single-column cell {'File_name.File_extention'} at Nx1 with
= arrayfun(@(row)[(data{row,:})],(1:size(data,1))','UniformOutput', false);
Sedo
Sedo on 4 Feb 2023
Thank you this worked for me!

Sign in to comment.

Categories

Find more on Structures in Help Center and File Exchange

Products

Community Treasure Hunt

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

Start Hunting!