Merging Cell Array Elements with cellstr

1 view (last 30 days)
Hello,
I want to merge the elements of the cell array of 100x4. After this merge, it will become 100x1. To do this process, I am using
temp = string(reshape(cell_temp, [], 4));
merged= cellstr(temp(:,1) + temp(:,2) + temp(:,3) + temp(:,4))
Are there any other methods to merge them in shorter way? Because sometimes I want to merge 15 elements but I don't want to write them explicitly. Thank you.
  2 Comments
tinkyminky93
tinkyminky93 on 9 Jun 2022
A1 A2 A3 A4 A1A2A3A4
B1 B2 B3 B4 B1B2B3B4
C1 C2 C3 C4 C1C2C3C4
...
.. -------->
.
.
F1 F2 F3 F4 F1F2F3F4

Sign in to comment.

Accepted Answer

Abhijit Nayak
Abhijit Nayak on 9 Jun 2022
I understand you want to automate merging of columns for a given matrix by using ‘cellstr’ function. The following code would work for any number of columns.
Create an array and assign it to ‘cell_temp’ variable in the code.
cell_temp = ones(100,5);
[row col]=size(cell_temp);
temp= string(reshape(cell_temp,[],col));
merged="";
for i=1:col
merged=merged + temp(:,i);
end
merged=cellstr(merged);
disp(merged)

More Answers (1)

Simon Chan
Simon Chan on 9 Jun 2022
Try this:
merged = cellfun(@(x) cat(2,x{:}),num2cell(cell_temp,2),'UniformOutput',false)

Products


Release

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by