Storing data in columns not in rows

Hey! I creating this loop to store the data in a matrix. However, the individual values of the participants in one colum. I want each of the values stored in each colum seperately but I dont know how to do it... Thanks
% Define initials of my subjects
subs = { 'P01' 'P02' 'P04' 'P06' 'P07' 'P09' 'P10' 'P11' 'P13' 'P14' 'P17' 'P18' 'P19' 'P20' 'P21' 'P22' 'P24' 'P25' 'P26'};
% Get the lenght of the array with my subjects
length_subs = size(subs,2);
% Define columns
rewCol = 5;
timeCol = 46;
load(sprintf('expResEye_P01_AllB.mat', char(subs(1, sub))))
sub_data = configEyeAll{1,6}.resMatCor
% Create empty arrays
all_subs_data = [];
% Here, we load the data of each subjects in "subs" array
for sub = 1:length_subs
load(sprintf('expResEye_%s_AllB.mat', char(subs(1, sub))))
sub_data = configEyeAll{1,6}.resMatCor;
vector_cor = sub_data(:,46)
indiv_data = [vector_cor]
all_subs_data = [indiv_data;all_subs_data];
end

 Accepted Answer

hello
why not use a structure or a table ?
it's much appropriate when dealing with variable size data sets
% Define initials of my subjects
subs = { 'P01' 'P02' 'P04' 'P06' 'P07' 'P09' 'P10' 'P11' 'P13' 'P14' 'P17' 'P18' 'P19' 'P20' 'P21' 'P22' 'P24' 'P25' 'P26'};
% Get the lenght of the array with my subjects
length_subs = size(subs,2);
% structure
for ci = 1:length_subs
S(ci).name = subs{ci};
S(ci).data = rand(5+3*ci,1);
end

5 Comments

FYI this is the code for a table :
% Define initials of my subjects
subs = { 'P01' 'P02' 'P04' 'P06' 'P07' 'P09' 'P10' 'P11' 'P13' 'P14' 'P17' 'P18' 'P19' 'P20' 'P21' 'P22' 'P24' 'P25' 'P26'};
% Get the lenght of the array with my subjects
length_subs = numel(subs);
% Build table
data = NaN(1000,length_subs); % initialize data with large NaN array to accomodate data of variable length
maxlength = 0;
for ci = 1:length_subs
newdata = rand(3+ci,1); %<= this is your new data array (column vector) with variable length
maxlength = max(maxlength,length(newdata));
data(1:length(newdata),ci) = newdata;
end
% remove trailing NaNs
data(1+maxlength:end,:) = [];
T = array2table(data,'VariableNames',subs);
hello
problem solved ?
I am very sorry for the late reply. But it worked like this. So thx!
as always , my pleasure !

Sign in to comment.

More Answers (0)

Categories

Community Treasure Hunt

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

Start Hunting!