For loop to do 900 subtractions

1 view (last 30 days)
Terry Poole
Terry Poole on 1 Mar 2022
Commented: David Hill on 1 Mar 2022
So I have a Double Difference equation in the form of y = (sqrt(BR^2 - B1^2) - sqrt(BB^2 - B1^2)) - (sqrt(BR^2 - B2^2) - sqrt(BB^2 - B2^2)).......
and so on with B(i) being 901 numbers so (n1 - n2 - n3 - n4 - n5 ....... - n901)
How would I even begin to write a loop to do this so I don't have to cut and paste 901 times?
Please be patient with me my brain is so far gone, i've been at this code for about 100 hours now.
B = [X_mat_base, Y_mat_base, Z_mat_base];
BB = [xyz(1), xyz(2), xyz(3)];
BR = zeros(1, 3);
B = [X_mat_base, Y_mat_base, Z_mat_base];
for i = 1:length(BB(:, 1))
yx(i) = (sqrt(BR(1)^2 - B(i, 1).^2) - sqrt(BB(1)^2 - B(i, 1).^2));
end

Answers (2)

Walter Roberson
Walter Roberson on 1 Mar 2022
y = sqrt((BR - B).^2 + (BB - B).^2);
  4 Comments
Walter Roberson
Walter Roberson on 1 Mar 2022
"and so on with B(i) being 901 numbers so (n1 - n2 - n3 - n4 - n5 ....... - n901)"
That implied to me that you have a single variable named B and that where you wrote B2 in your code you meant B(2) .
If you have individual variables B1, B2, B3, ... B901 then... don't .
David Hill
David Hill on 1 Mar 2022
Your signs are making no sense to me. Your question had all minus signs after the first term. I am confused as to what you want. You should be able to excute without a for-loop. Above some of your BB terms are plus and some are minus

Sign in to comment.


David Hill
David Hill on 1 Mar 2022
yx=sqrt(BR^2-B(1)^2)-sum(sqrt(BB^2-B.^2))-sum(sqrt(BR^2-B(2:end).^2));

Categories

Find more on Loops and Conditional Statements in Help Center and File Exchange

Products


Release

R2021b

Community Treasure Hunt

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

Start Hunting!