I want this process for the batch of every 300. ie the first 300 will take one value and second batch of 300 will take one value and so on ...for 361 times.
i want to code such that the loop is constraint for two different values?
2 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
I want to code this equation
s(i)=x(i)+(l1-sum(x(i))/N
here the loop must be i=1:108300
and the value for l1 and x(i) must be same for first 300
here I something I tried.
for i2=1:108300
for i3=1:300
s(i2)=W(i2)+(l1-sum(W(:,i3)))/N;
end
end
3 commentaires
KL
le 28 Août 2017
Modifié(e) : KL
le 28 Août 2017
Your question is still not clear.
What do you mean by the value for l1 and x(i) must be same for first 300? Is l1 a constant or a vector (like x)? If so, does it change only every 300 rows?
and what do you mean by sum(x(i).. Do you wanna make a sum of every 300 rows and keep it constant?
Réponse acceptée
KL
le 28 Août 2017
Modifié(e) : KL
le 28 Août 2017
N = 108300;
x = rand(N,1);
sum_rows = 300;
l1 = x(1:sum_rows:N); %take every 300th value
l1_r = reshape(repmat(l1,1,sum_rows)',N,1); %repeat it
sum_x = sum(reshape(x,N/sum_rows,sum_rows),2); %create a sum of every 300 rows
sum_x_r = reshape(repmat(sum_x,1,sum_rows)',N,1); %repeat 361 times to create a vector of N length
s=x+(l1_r-sum_x_r)./N;
0 commentaires
Plus de réponses (1)
Walter Roberson
le 28 Août 2017
N = 108300;
x = rand(1, N);
x(1:300) = l1(1:300);
i = 1 : N;
s(i) = x(i)+(l1-sum(x(i))/N;
Voir également
Catégories
En savoir plus sur Loops and Conditional Statements dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!