How do I create an array with unequal increment?
Mostra commenti meno recenti
I want to design a program to create an array of numbers. The user can input the maximum and minimum values and the scaling factor.
For example,
max=256,
min=2,
scaling factor=2.
The array will be [2 4 8 16 32 64 128 256].
Is there anyway I can create such array with the max, min and scaling factor as variables? I tried doing it with the following code. However, the x(count) only gives me 1 number instead of storing the answers from the loop.
Is this the right direction to do it? Or is there any other codes to do it in a more efficient way?
Thanks!
xmax=256;
xmin=2;
xfact=2;
count=0;
x=0;
if x<=xmax
count=count+1;
x(count)=x*xfact;
end
Risposta accettata
Più risposte (1)
Birdman
il 14 Feb 2018
a=2;%min
n=8;%max
r=2;%scaling factor
s = a*r.^(0:n-1)
4 Commenti
Wing
il 14 Feb 2018
Jan
il 15 Feb 2018
@Wing: While the input n is 8, the last element of the output is 256 as wanted.
"In the code you gave me, the input of maximum value is 8 instead of 265."
The last value is a*r.^(n-1), where a=2, r=2, and n=8, giving 2*2.^(8-1), which is equal to 2^8, which gives 256 (and is exactly what you requested in your question).
Wing
il 15 Feb 2018
Categorie
Scopri di più su Matrix Indexing 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!