# creating an array from a single user input

6 visualizzazioni (ultimi 30 giorni)
Jakub il 8 Mar 2023
Risposto: David Hill il 8 Mar 2023
how would i create and array from an input:
eg user inputs the number 12
##### 4 CommentiMostra 2 commenti meno recentiNascondi 2 commenti meno recenti
Dyuman Joshi il 8 Mar 2023
Why is it "must" to define empty matrices?
%Random value
userinput = 12;%input('input nth value for fibonacci calculation:');
%define first two fibonacci values
fibonacci = [0 1];
%define first golden ratio to be infinity
ratio = 1/0;
%make a loop for the fibonacci equation starting from 3
for i = 3:(userinput+1)
fibonacci(i)=fibonacci(i-1)+fibonacci(i-2);
end
Why only till 12? And you can also club the two for loops together.
%make a loop for golden ratio values and equation
for i=2:12
ratio(i) = fibonacci(i)/fibonacci(i-1);
end
%create an array
n = 1:13;
%display final product
table1=table(n,ratio,fibonacci)
table1 = 1×3 table
n ratio fibonacci ___________ ___________ ___________ 1×13 double 1×12 double 1×13 double
table2struct(table1)
ans = struct with fields:
n: [1 2 3 4 5 6 7 8 9 10 11 12 13] ratio: [Inf Inf 1 2 1.5000 1.6667 1.6000 1.6250 1.6154 1.6190 1.6176 1.6182] fibonacci: [0 1 1 2 3 5 8 13 21 34 55 89 144]
The code is working fine.
"however im having major problems with the n"
What is the problem that you are facing?
Jakub il 8 Mar 2023
clc
%user input
userinput = input('input nth value for fibonacci calculation:');
%define two empty matrices one for fibonacci values and one for ratios
fibonacci = [];
ratio = [];
%define first two fibonacci values
fibonacci(1) = 0;
fibonacci(2) = 1;
fibonacci(3) = 1;
%define first golden ratio to be infinity
ratio(1) = 1/0;
%make a loop for the fibonacci equation starting from 3
for i = 3:(userinput+1)
fibonacci(i)=fibonacci(i-1)+fibonacci(i-2);
end
%make a loop for golden ratio values and equation
for i=2:userinput
ratio(i) = fibonacci(i)/fibonacci(i-1);
end
%create an array
n = 1:13;
%display final product
table1=table(n,ratio,fibonacci);
table2struct(table1)
disp(table(userinput,fibonacci,ratio))
so this is the fixed script, ive changed for i = 2:userinput so now whatever is inputted then that is what the ratio will go up to, will lump the for loops together. however what id like is for the n to be an array dependant on whatever has been input so if i input 25 then the ratio goes from 1-25 and so does fibonacci however n stays at 13.
However id like the n value to display 1,2,3,4,5,6,7,8...until user input has been reached.

Accedi per commentare.

### Risposta accettata

David Hill il 8 Mar 2023
userinput = input('input nth value for fibonacci calculation:');
%define two empty matrices one for fibonacci values and one for ratios
fibonacci = [];
ratio = [];
%define first two fibonacci values
fibonacci(1) = 0;
fibonacci(2) = 1;
fibonacci(3) = 1;
%define first golden ratio to be infinity
ratio(1) = 1/0;
%make a loop for the fibonacci equation starting from 3
for i = 3:(userinput+1)
fibonacci(i)=fibonacci(i-1)+fibonacci(i-2);
end
%make a loop for golden ratio values and equation
for i=2:userinput
ratio(i) = fibonacci(i)/fibonacci(i-1);
end
%create an array
n = 1:userinput;%NEED n TO BE 1:userinput
%display final product
table1=table(n,ratio,fibonacci);
table2struct(table1)
disp(table(userinput,fibonacci,ratio))
##### 0 CommentiMostra -2 commenti meno recentiNascondi -2 commenti meno recenti

Accedi per commentare.

### Categorie

Scopri di più su Feature Detection and Extraction in Help Center e File Exchange

R2022b

### Community Treasure Hunt

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

Start Hunting!

Translated by