creating an array from a single user input

4 ビュー (過去 30 日間)
Jakub
Jakub 2023 年 3 月 8 日
回答済み: David Hill 2023 年 3 月 8 日
how would i create and array from an input:
eg user inputs the number 12
array is made: 1,2,3,4,5,6,7,8,9,10,11,12
  4 件のコメント
Dyuman Joshi
Dyuman Joshi 2023 年 3 月 8 日
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
Jakub 2023 年 3 月 8 日
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.

サインインしてコメントする。

採用された回答

David Hill
David Hill 2023 年 3 月 8 日
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 件)

カテゴリ

Help Center および File ExchangeLoops and Conditional Statements についてさらに検索

製品


リリース

R2022b

Community Treasure Hunt

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

Start Hunting!

Translated by