for loop collecting output
Show older comments
F is giving me the same measurements and I can’t seem to find how to move to the next position.
A = (:,:,1) % There are 100 A symmetric matrix
for i = 1:100A
F(i) = atan(-(A(3,1)/A(3,2))) % Second A should be position (A(3,4).....
end
Answers (1)
Hi,
it is not recommended to use i - since i is reserved for complex numbers. Perhaps use k or n or ii instead. I decided to use ii:
The idea is to work with the counter variable ii in this context. That means you have to find a way to express the steps of the loop by your counter variable. For example:
for ii = 1:99
F(ii) = atan(-(A(3,ii)/A(3,ii+1)))
end
would make the pairs:
ii = 1 --> A(3,1) / A(3,2)
ii = 2 --> A(3,2) / A(3,3)
ii = 3 --> A(3,3) / A(3,4)
...
ii = 99 --> A(3,99 / A(3,100)
I leave it to you to find an expression that counts the way you need it.
Best regards
Stephan
6 Comments
Nikolaos Zafirakis
on 30 Apr 2019
madhan ravi
on 30 Apr 2019
Preallocation is essential.
Stephan
on 30 Apr 2019
This takes first and second Matrix from A, then second and third and writes the results in the preallocated F Array:
A = randi(10,3,3,3)
F = nan(3,3,2)
for ii = 1:size(A,3)-1
F(:,:,ii) = atan(-(A(:,:,ii)/A(:,:,ii+1)))
end
Nikolaos Zafirakis
on 30 Apr 2019
Steven Lord
on 30 Apr 2019
I'm not certain I understand what you're trying to compute. Can you show us exactly what the results should be for the following A vector?
A = 1:9;
Stephan
on 30 Apr 2019
I agree - we would need a example to be sure understanding you correctly
Categories
Find more on Logical 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!