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.
Best Answer