Concatination over write issue

I have code that pulls files successfully except once the first loop is completed fnm is overwritten and the previous files contents disappear. I need to add code that allows each loop to store the file contents(a Matrix). Once the files are saved and the for loop is complete dependent of the size(CatRow)I will concatenate the matrixes together.
%
for ii= 1: CatRow
[num,txt,data] = xlsread(stateTable{ii,1})
fnm = sprintf('file_%d.mat',ii);
save(fnm,'data');
horzcat(fnm's into one matrix)
end

 采纳的回答

all_data = cell(CatRow,1);
for ii= 1: CatRow
[num,txt,data] = xlsread(stateTable{ii,1})
fnm = sprintf('file_%d.mat',ii);
save(fnm,'data');
all_data{ii} = data;
end
big_data = horzcat(all_data{:});
I have to ask whether you really want to horzcat() them together. If they are the same size, more common would be to
big_data = cat(3, all_data{:});
which would concatenate them on the third dimension.

2 个评论

Tessa Aus
Tessa Aus 2018-1-10
编辑:Tessa Aus 2018-1-10
It looks like it worked but it is now a 2x1 cell with each matrix inside each cell? How do I pull the data out of the cells?
matrix has I am not concatenating the more common way because I must do the same for all columns in the future as the user can specify and create any number of column and row matrix sizes to break down one large one.
I had some typing mistakes in what I posted; I have corrected them.
To get a 2 x 1 cell you must have used vertcat() or cat(1) instead of horzcat()

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File Exchange 中查找有关 Creating and Concatenating Matrices 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by