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

 Akzeptierte Antwort

Mathieu NOE
Mathieu NOE am 3 Nov. 2022

1 Stimme

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 Kommentare

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);
Mathieu NOE
Mathieu NOE am 16 Nov. 2022
hello
problem solved ?
Oliver Steiner
Oliver Steiner am 1 Feb. 2023
I am very sorry for the late reply. But it worked like this. So thx!
Mathieu NOE
Mathieu NOE am 1 Feb. 2023
as always , my pleasure !

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (0)

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by