Effacer les filtres
Effacer les filtres

Pythagorean triples - wrong output in loop

1 vue (au cours des 30 derniers jours)
sznailc
sznailc le 3 Nov 2021
Hello, I have this piece of code, it computes pythagorean triples, then adds them in a matrix, but in output for some reason it adds lines with zeros. How do I change the code to run properly?
And 1 more thing how to make it print sorted by a+b+c column, not by a like now?
UPD. I have solved 1 part of the question with "R = reshape(nonzeros(R), I, 4);
"
function [R, I] = pyth_tri(N)
I = 0;
for a = 3:N/3
for b = a:N/3
for c = b:N
if (a^2 + b^2) == c^2 && a ~= 0 && b ~= 0 && c ~= 0
R(a, :) = [a+b+c, a, b, c]
I = I + 1;
end
end
end
end
end

Réponse acceptée

the cyclist
the cyclist le 3 Nov 2021
You need
R(I+1, :) = [a+b+c, a, b, c];
rather than
R(a, :) = [a+b+c, a, b, c];
For sorting, after your run your algorithm, run
R = sortrows(R,1)

Plus de réponses (0)

Catégories

En savoir plus sur Operating on Diagonal Matrices dans Help Center et File Exchange

Produits


Version

R2021a

Community Treasure Hunt

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

Start Hunting!

Translated by