storing for loop answer into matrix

1 view (last 30 days)
Cside
Cside on 28 Oct 2019
Commented: Bhaskar R on 28 Oct 2019
Hi, i have this code and it gives me 8 answers of matrix "locations". Is there a way I can write another line of code to store the loop answers into a matrix? The end result should be a 1 x 8 cell array.
Thanks!
for i = 1:8
fefinsessionn = find(sessions_fef==i); %%extract the fef neurons that appear in the selected trials
trialsize = size(trials(i).val); %%number of trials in the selected session (i only want columns?)
A = dataset_fef_sac_all(fefinsessionn,:); %%selected rows/neurons in mean fef dataset
A(:,(trialsize(:,2)+1):621) = [];
B = ix_all(i); %%based off i, to select the respective ix, to use {ix .... ix_s8}, create ixall matrix
B2 = cell2mat(B);
[locations,~] = find(B2);%%location of target in respective ix
end

Accepted Answer

Bhaskar R
Bhaskar R on 28 Oct 2019
Yes you can write by adding the loop variavle value to index of the locations.
If the result of the find(B2) is same length for each iteration then you can assign directly loop variable index to the locations(ii) by initializing empty array in the begining of the loop. If the result length is different each time you can use locations as cell array as shown.
locations = cell(1, 8)
for i = 1:8
fefinsessionn = find(sessions_fef==i); %%extract the fef neurons that appear in the selected trials
trialsize = size(trials(i).val); %%number of trials in the selected session (i only want columns?)
A = dataset_fef_sac_all(fefinsessionn,:); %%selected rows/neurons in mean fef dataset
A(:,(trialsize(:,2)+1):621) = [];
B = ix_all(i); %%based off i, to select the respective ix, to use {ix .... ix_s8}, create ixall matrix
B2 = cell2mat(B);
[locations{i},~] = find(B2);%%location of target in respective ix
end
To access data from locations use notation as locations{1}, locations{2}...locations{8} for each loop data
  1 Comment
Bhaskar R
Bhaskar R on 28 Oct 2019
Answer of the Daniel M is recommended for thorough understanding of the indexing in the loop iteration

Sign in to comment.

More Answers (1)

Daniel M
Daniel M on 28 Oct 2019
It would often be much faster for you to just look up the documentation than to post a question here and wait for an answer. I suggest learning to use the documentation as your first course of action when you don't know something.

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Community Treasure Hunt

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

Start Hunting!