convert a struct to a mxn cell array
2 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
hi,
Let say i have 6 files: 101 ... 103 and 201 ... 203 which represent 2 people (p) with 3 different expressions(e). After using 'dir' to gel all the files, i try to create a cell (2x3). However i got an error ' Improper index matrix reference '. Below is the code:
FolderTrain = 'myfolderpath'; %specify the folder
AllTrainFiles = fullfile(FolderTrain, '*.txt'); % get the directory path for all files
myData = dir(AllTrainFiles);
for i=1:length(myData)
j=2;
k=3;
TrainData = cell(j,k);
end
cell
for p = 1:j
for e = 1:k
baseTrainFilename = {TrainData(p,e).name};
TrainFilename = fullfile(FolderTrain, baseTrainFilename);
fid = fopen(TrainFilename);
A = fscanf(fid, '%d %d %d');
TrainData{p,e} = A;
fclose(fid);
end
end
How can i create a correct 2x3 cell? Thank you.
1 Commento
Walter Roberson
il 23 Nov 2017
Why are you running the body of
for i=1:length(myData)
j=2;
k=3;
TrainData = cell(j,k);
end
more than once? It always assigns the same content to the variables.
Risposta accettata
dpb
il 23 Nov 2017
Modificato: dpb
il 24 Nov 2017
FolderTrain = 'myfolderpath'; % specify the folder
AllTrainFiles=fullfile(FolderTrain,'*.txt'); % full path wild card pattern for all files
d=dir(AllTrainFiles); % directory list for all files
for i=1:length(d) % iterate over files; Matlab does return sorted order
data{i}=importdata(fullfile(FolderTrain,d(i).name)); % read each file as array into cell
end
data=reshape(data,3,2); % rearrange as 2 columns, 3 rows by sequential order
The above presumes the data files are numeric arrays as would be implied by the format string used in the fscanf call.
5 Commenti
dpb
il 24 Nov 2017
Modificato: dpb
il 24 Nov 2017
From the original lines
baseTrainFilename = {TrainData(p,e).name};
TrainFilename = fullfile(FolderTrain, baseTrainFilename);
I'd pasted the fullfile() argument text into the place where the .name was used to pick it up to eliminate the unneeded temporary; unfortunately it was inside the existing curlies...old eyes and all that make them hard to tell apart... :(
Più risposte (0)
Vedere anche
Categorie
Scopri di più su Environment and Settings in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!