How can I resolve this problem using vertcat on matrices for daily files to create a single matrix for the whole year?

2 visualizzazioni (ultimi 30 giorni)
Hello,
I am trying to create a single matrix that represents soil moisture data for an entire year. I have one file from each day that is 96x25 and is in a .dat format. I have been trying to upload the files and then concatenating them using the vertcat function but every time I get the error "??? Error using ==> vertcat The following error occurred converting from double to struct: Error using ==> struct Conversion to struct from double is not possible."
I don't understand what the problem is because I'm not trying to convert to struct but I'm guessing that this might be part of the vertcat function? I have found multiple entries discussing similar problems but none that have helped in resolving my problem. I have included part of the prompt I'm using below. Thanks for any help you can give.
Tyler
datfiles=dir('*.dat');
numfiles=length(datfiles);
%Import the files
for k=1:length(datfiles);
newData1 = importdata(datfiles(k).name);
newData2 = importdata(datfiles(k+1).name);
A = newData1; %Create matrix A, with all data from the file
B = newData2;
C = [A; B]; %vertically concatenates matrix A to B
end if true
% code
end

Risposte (2)

Thorsten
Thorsten il 12 Feb 2013
Modificato: Thorsten il 12 Feb 2013
importdata returns a structure, not a matrix;
whos newData1

Kye Taylor
Kye Taylor il 12 Feb 2013
Modificato: Kye Taylor il 12 Feb 2013
So, I'm guessing that newData2 is not a structure, in particular it is a double?
Perhaps try fixing your code by replacing the line that defines A with
A = newData1.data;
  2 Commenti
Daniel
Daniel il 12 Feb 2013
Modificato: Daniel il 12 Feb 2013
I tried replacing this line and it gave an error saying 'attempt to reference field of non-structure array'. I was under the impression that the files were all in double after being imported, but am somewhat confused by this aspect. Sorry I can't give more information but I'm somewhat new to matlab. Let me know if I can give more details to help explain.
Each file is essentially the same, except for the second column which reflects the day of year (DOY). All I want is for it to start at DOY 1 and add each consecutive day's file until it reaches DOY 365. The desired result is a single file with all of this data in order.

Accedi per commentare.

Categorie

Scopri di più su Data Type Conversion in Help Center e File Exchange

Tag

Prodotti

Community Treasure Hunt

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

Start Hunting!

Translated by