Rearrange matrix and concatenate cells

1 Ansicht (letzte 30 Tage)
Heathen233
Heathen233 am 21 Apr. 2019
Beantwortet: Andrei Bobrov am 21 Apr. 2019
Hi everyone,
I have a 3492x5 matrix with variable names say variable1, variable2,...,variable5. I have been trying to cut this matrix into 12 291x5 cells and rearrange them into a 291x60 matrix. But when I did this, I had error of duplicate variable names. So, I'm wondering if there way to circumvent this? With or without variable names is ok for me since they are not really useful.
Here is the code I used:
filename=datadimer
[m n]=size(filename)
sZ=291;
Numofrows= m/(sZ);
C=mat2cell(filename,sZ*ones(1,Numofrows),size(filename,2));
for i=1:Numofrows
D(:,i)=C(i,:);
end
output=horzcat(D{:});
The input matrix ('filename') contains one row of string and first 16 rows look like this:
Any help will be much appreciated, thank you!
  1 Kommentar
Walter Roberson
Walter Roberson am 21 Apr. 2019
Could you confirm that your variable filename, rather than being the name of a file, is a cell array of character vectors, one cell per input line? How is the split header ("centered 1, linebreak, centered Variable1") encoded in the character vector? Is there any delimiter between the numeric entries, such as comma, or are they fixed width?

Melden Sie sich an, um zu kommentieren.

Antworten (1)

Andrei Bobrov
Andrei Bobrov am 21 Apr. 2019
If your datadimer is table:
A = datadimer{:,:};
sZ = 291;
[m,n] = size(A);
k = m/sZ;
out = reshape(permute(reshape(A,sZ,k,n),[3,1,2]),sZ,[]);

Kategorien

Mehr zu Cell Arrays finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by