Generating a vector with a pattern?
8 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
How do I generate the following vector efficiently for large lengths?
A=[1^1 2^2 3^3 4^4 5^5 6^6]
0 commentaires
Réponse acceptée
Vieniava
le 4 Fév 2011
check this out:
A=[1:6].^[1:6];
1 commentaire
Andrew Newell
le 4 Fév 2011
Stylistically better is
A = (1:6).^(1:6);
because brackets are used to construct arrays and 1:6 already is an array.
Plus de réponses (2)
the cyclist
le 4 Fév 2011
>> v = 1:6;
>> A = v.^v;
Stylistically even better? ;-)
3 commentaires
Walter Roberson
le 4 Fév 2011
Now how would we do tetration, v^^v?
http://en.wikipedia.org/wiki/Tetration
Jan
le 4 Fév 2011
This job overflows fast for large lengths and computing 200^200 is a waste of time.
EDITED: With Matt Fig's further improvements:
function x = XpowerX(n)
v = 1:min(n,143);
x = inf(1,n);
x(v) = v.^v;
This much faster than the direct 1:n approach:
tic; for i = 1:15000; y = XpowerX(i); end; toc
% 1.8 sec
tic; for i = 1:15000; v = 1:i; y = v.^v; end; toc
% 60 sec
2 commentaires
Voir également
Catégories
En savoir plus sur Language Fundamentals dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!