writing code so that for loop does not overwrite

1 回表示 (過去 30 日間)
Cside
Cside 2019 年 12 月 1 日
編集済み: Cside 2019 年 12 月 1 日
Hi, I currently have this code and would like to NOT have the for loop overwrite with every t so that there will be 11 selectiven. How can i rewrite the problem line to make sure the for loop does not overwrite and produce 11 selectiven matrices? Thank you! :)
for t = 43:53
C= A(:,:,t);
for i = 1:8
D = find(sessions_pfc==i);
trialsize = size(trials(i).val);
B = ix_all(i);
B2 = cell2mat(B);
[locations,~] = find(B2);
anss = 0;
for n = D(1,:):D(end)
p= anova1(C(n,1:trialsize(:,2)), locations', 'off');
anss=anss+(p<0.05);
selectiven (n,:) = p<0.05
end
end
neuronno(t) = find (selectiven); %%problem line
end

回答 (1 件)

KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 12 月 1 日
編集済み: KALYAN ACHARJYA 2019 年 12 月 1 日
#Edited
neuronno(t) = find (selectiven);
As the t indices starts from 43 till 53. Here what about the previous indexing? Better to choose other variable name to avoid zeros or [ ] at initials-
%Drfine k=1 before first for loop
neuronno(k) = find (selectiven);
k=k+1;
Still problem, let me kow?
  5 件のコメント
KALYAN ACHARJYA
KALYAN ACHARJYA 2019 年 12 月 1 日
編集済み: KALYAN ACHARJYA 2019 年 12 月 1 日
OK, May be in each iteration the following statement gives the same results
>> find(selectiven)
ans =
1
Right? Is this statement complete? Based on my basic undestanding you may get the following results for neuronno
neuronno=[0 0 0 0 0.....................till 42 index then 1 1 1 1 1 1 1 1 1 1]
Cside
Cside 2019 年 12 月 1 日
every selectiven will be 226x1. However, find(selectiven) will give a different answer with each iteration as selectiven is a logical matrix, yielding an ans from 40-80.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by