How to create a vector from a "for iteration"

5 次查看(过去 30 天)
I'm creating a code using Gauss-Seidel method. I'd like to create a vector with the answers of the iterations. How can I do that?
My work:
Ybus1 = [3.73-49.72i 0 0 0 -3.73+49.72i];
Ybus2 = [0 2.68-28.46i 0 -0.89+9.92i -1.79+19.84i];
Ybus3 = [0 0 7.46-99.44i -7.46+99.44i 0];
Ybus4 = [0 -0.89+9.92i -7.46+99.44i 11.92-147.96i -3.57+39.68i];
Ybus5 = [-3.73+49.72i -1.79+19.84i 0 -3.57+39.68i 9.09-108.58i];
Ybus = [Ybus1; Ybus2; Ybus3; Ybus4; Ybus5];
Vi = [1;1;1.05;1;1];
pk = [0 -8 4.4 0 0];
qk = [0 -2.8 0 0 0];
%% ********Gauss-Seidel********
N = size(Ybus,1);
for k = 2:N;
Vk = Vi(k);
S1 = 0;
S2 = 0;
F1 = Ybus(k,k);
for n = 1:k-1
S1 = S1 + (Ybus(k,n))*(Vi(n));
end
for n = k+1:N
S2 = S2 +(Ybus(k,n))*(Vi(n));
end
for iter = 1:100
F2 = (pk(k)-(qk(k)*1i))/conj(Vk);
Vk = (F2-S1-S2)/F1
end
end

回答(1 个)

Star Strider
Star Strider 2020-8-25
Subscript them appropriately:
for iter = 1:100
F2(k,iter) = (pk(k)-(qk(k)*1i))/conj(Vk);
Vk(k,iter) = (F2-S1-S2)/F1
end
I’m not certain what you want to do, so it may be necessary for you to change the subscripts get the result you want. However that’s the general approach.
  2 个评论
Elisandro Peixoto
Elisandro Peixoto 2020-8-25
For example:
For k = 2, I find an answer. For k = 3, I find another answer...
I want to place the results for k = 2...3...4...5 in a vector
I hope you inderstood and can help me.
Thanks!
Star Strider
Star Strider 2020-8-25
My code produces a matrix where the rows are over ‘k’ and the columns are over ‘iter’. My code will do what you want. You simply need to address the matrix correctly to get the result you want.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 2-D and 3-D Plots 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by