Indexing through an array

1 次查看(过去 30 天)
This program is designed to approximate cubed roots based on user input values of the number they want to approximate and their estimate. The loop iterates until the error is less than 1e-9.
I am trying to store all of my estimate values into a vector array and plot them on a graph, but I keep getting an error saying that my index values exceed the array elements. Any clarification about how to resolve this issue would be greatly appreciated.
num = input('Enter a number you would like to find the cubed root of: ')
est = input('Enter your initial estimate: ')
err = abs(num - est.^3)
est(1) = est
k = 2;
while err > 1e-9
est(k+1) = (1/3)*(2.*est(k)+num./est(k.^2));
err = abs(num - est(k.^3));
k = k + 1;
end
plot(1:length(est),est)
fprintf('The cubed root of %g is approximately %.3f',num,est)

采纳的回答

David Hill
David Hill 2020-11-17
num = input('Enter a number you would like to find the cubed root of: ');
est = input('Enter your initial estimate: ');
err = abs(num - est^3);
k = 2;
while err > 1e-9
est(k) = (1/3)*(2*est(k-1)+num./(est(k-1)^2));
err = abs(num - est(k)^3);
k = k + 1;
end
plot(1:length(est),est);
fprintf('The cubed root of %g is approximately %.3f',num,est(end));
  1 个评论
Austin Shipley
Austin Shipley 2020-11-17
That worked perfectly! Thank you so much! I never really thought to tweak the array indices since that was a provided formula in my homework.

请先登录,再进行评论。

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Matrix Indexing 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by