Expression representation in an Iteration
1 次查看(过去 30 天)
显示 更早的评论
I'd love to know how i can express the expression in a loop. n is the iteration number. I know it may seem trivial but i've been cracking my skull over it. My approach, which I figure is wrong anyways, was to index the second term with n. But the iteration number is greater than the the matrix elements and i get an error. Here is my attempt at the issue.
w=[randn(2,1)+ij*randn(2,1)];
W_k=w*ctranspose(w);
for n=1:N;
w=[randn(2,1)+ij*randn(2,1)];
W_k1=w*ctranspose(w);
t=W_k - W_k1;
end
Is this doing what the expression requires?
0 个评论
采纳的回答
Walter Roberson
2020-8-6
W_k = cell(N,1);
w=[randn(2,1)+ij*randn(2,1)];
W_k{1} = w*ctranspose(w);
for n=1:N;
w = randn(2,1)+ij*randn(2,1);
W_k{n+1} = w*ctranspose(w);
t = W_k{n} - W_k1{n+1};
%do something with t
end
更多回答(1 个)
Sudheer Bhimireddy
2020-8-6
Something like this ?
w_k(nx) = 0;
w_k_n(n_iter) = 0;
for i=1:nx
w_k_n(1) = w_k(i);
for j=1:n_iter
your_ans(i) = w_k(i) - w_k_n(j);
end
end
2 个评论
Sudheer Bhimireddy
2020-8-6
If both matrices are of same size and you want to iterate as many times as you want, then you can do one of the below two things:
1) Dynamically increase the size of both matrices as you iterate and fill the w_k with repetetive values. This way you will end up with redundant data.
OR
2) Over-write the w_k_n matrix once the iteration limit has crossed the size of the matrix. This way you might loose some data once you start overwriting.
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Surrogate Optimization 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!