How to resolve problem in for loop?
Mostra commenti meno recenti
a=java.math.BigInteger(100)
for i=1:a
a*a;
end
Undefined function '_colonobj' for input arguments of type 'java.math.BigInteger'.
Any help in this regard is much appreciated. Thanks
Risposte (1)
John D'Errico
il 11 Dic 2021
Modificato: John D'Errico
il 11 Dic 2021
Is "a" a number, in the form MATLAB will expect it? NO! a is a BigInteger number. You cannot use the colon operator on a.
a=java.math.BigInteger(100)
whos a
So you could have used a loop like this:
for i = 1:double(a)
As far as the actual loop goes, What do you think this
a*a;
does? NOTHING. Well, it does something. It throws an error. Because again, multiplcation is NOT supported in MATLAB between java.math.BigInteger objects. And even if it was supported, it would do nothing useful in MATLAB, just dumping the result into the bit bucket.
Anyway, if you want to multiply BigInteger numbers, the Java toolbox provides such a tool. Admittedly, it is a bit of a pain in the neck. This is why I put my own wrapper around those tools for use in MATLAB.
4 Commenti
Ammy
il 11 Dic 2021
Image Analyst
il 11 Dic 2021
Modificato: Image Analyst
il 11 Dic 2021
@Ammy yes, but the value won't be saved because you didn't assign the product to any variable. So, because you left off the semicolon, it will print the value to the command window -- that's all. Maybe that's all you want - I don't know.
a=input('Enter a : ');
for k = 1 : a
result(k) = a * a;
end
result % Show all results in command window.
John D'Errico
il 11 Dic 2021
Modificato: John D'Errico
il 11 Dic 2021
Lol. You are wasting your time.
Do you understand how big is that number?
log10(2589665665565686656656)
Over two sextillion.
Not much smaller than Avogadro's number. You want to loop THAT many times?
Are you running that loop on a super computer the size of the earth? Lets see. If you can run one billion loops per second, as I recall, there are roughly 31 million seconds in a year. So that will still take on the order of 85000 YEARS to finish the loop.
Are you a bit of an optimist? Or do you just have plenty of time to kill? Maybe you want to re-read the complete works of Shakespeare a few quadrillion times while you wait for it to finish?
Ammy
il 11 Dic 2021
Categorie
Scopri di più su Loops and Conditional Statements in Centro assistenza e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!