array subscripting
Mostra commenti meno recenti
I have a struct variable defined as follows:
my_data(3) = struct('x',[],'y',[],'f',[])
for i=1:3
my_data(i).x = [1 2 3]*i;
my_data(i).y = [1 2 3]*i;
my_data(i).f = [1 2 3;4 5 6;7 8 9]*i;
end
Actually f is a matrix (N×M) which holds the value of a function for each (x,y) and stores its value in different measures. x and y are vectors (N×1). Therefore, my_data(1).f(:,2) means the value of the function in the second measure for experiment#1. I am trying to assign f to another variable (like new_f) columnwise. In other words, I am trying to assign the first columns of all the experiments (from 1 to 3) to the first column of new_f and so on. The following assigns each column of f but can I modify it a little bit to assign all the columns to new_f:
column1=arrayfun(@(S) S(:).f(:,1), my_data,'UniformOutput', false);
column2=arrayfun(@(S) S(:).f(:,2), my_data,'UniformOutput', false);
column3=arrayfun(@(S) S(:).f(:,3), my_data,'UniformOutput', false);
how can I combine all the above assignments into one neat assignment?
Thank you very much for your quick reply.
Risposta accettata
Più risposte (0)
Categorie
Scopri di più su Structures in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!