I went to 3D array option then squeeze my results to get the results in this way

result(:,:,n)

G=(squeeze(myMean));

But I got them into 3*35 not 35*3 I will try to find a way to flip the data as I want ..

1 view (last 30 days)

Show older comments

I trying to do script to evalute my lab data into matlab, I have lots of txt files for many samples, each sample has 30 txt files. I did a function to get the data from these files and store them into a structure that contains data and labels. I would like to know if it is possible to load all the 30 files using loop instead of line by line .

function s = try1(fn) % adapt for other file format according to your needs fid = fopen(fn); s.data = []; % skip first lines

for k=1:6

l = fgetl(fid);

% read header

a = regexp(l,',','split');

s.labels = a;

l = fgetl(fid);

k=0;

end

while( (l~=-1)&(k<130) )

l = l(1:end-1);

a = regexp(l,', ','split');

a = regexpre

p(a, ',','.');

s.data = [s.data; str2double(a(2:4))];

l = fgetl(fid);

k = k+1;

end

fclose(fid);

end

then i used this code to fetch the data form folder directory

dataDirectory = 'c:/myDirectory';

allFilesDir = dir(fullfile(dataDirectory , '*.txt'));

allFN = {allFilesDir.name}

% Or do this:

% allFN = {'file1.txt', 'file2.txt'};

result = [];

for ind = 1:length(allFN)

myFN = fullfile(dataDirectory, allFN{ind});

result(ind) = try1(myFN);

end

% Now get the mean:

myMean = mean([result.data])

but i got this error The following error occurred converting from struct to double: Error using ==> double Conversion to double from struct is not possible. Error in ==> getmean at 13 result(ind) = try1(myFN); any idea about porb \\

Image Analyst
on 20 Sep 2013

It's having trouble taking the mean of the entire structure array. Each member (.data) could be a different sized array as far as it knows, even though they may not be, so it just throws up its hands. There is nothing to say that s(1).data and s(2).data have the same number of rows or columns so it's saying it doesn't know how to concatenate then into one big long column vector. You may need to get the mean of each structure member one at a time inside the loop

myMean(ind) = mean([result(ind).data])

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

Start Hunting!