I am brand new to MATLab and do not know how to do a whileloop
1 次查看(过去 30 天)
显示 更早的评论
x=0;
while (x<20)
x=x+1
f(x)= x^3 - (5*x)^2 + 2^(x) - 10000.*x;
fig=figure(1); clf; grid on; hold on;
xlabel('x1'); ylabel('y1'); title('While Loop');
p = plot(Value(:,1),Store(:,1));
set(p,'Color','red','LineWidth',2);
end
what is wrong and why will it not plot? everything from fig=figure(1); on is given
0 个评论
采纳的回答
Image Analyst
2014-9-19
Lots of errors - too many to list. Just study corrected code:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 25;
fig=figure(1);
x(1)=0;
fx(1) = 0;
index = 2;
while (x<20) & index < 1000 % Add index check as a failsafe.
x(index)=x(index-1)+0.5
fx(index)= x(index)^3 - (5*x(index))^2 + 2^(x(index)) - 10000.*x(index);
clf;
grid on;
hold on;
xlabel('x', 'FontSize', fontSize);
ylabel('fx', 'FontSize', fontSize);
title('While Loop', 'FontSize', fontSize);
p = plot(x, fx, 'ro-', 'LineWidth',2, 'MarkerSize', 10);
index = index + 1;
end
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
Of course I hope you know you could do this without a while loop in just a few lines, but I guess you were interested in the while loop mechanics rather than just how to plot a curve.
5 个评论
Image Analyst
2014-9-19
Try this:
clc; % Clear the command window.
close all; % Close all figures (except those of imtool.)
clear; % Erase all existing variables. Or clearvars if you want.
workspace; % Make sure the workspace panel is showing.
format long g;
format compact;
fontSize = 25;
x(1)=0;
fx(1) = 0;
index = 2;
while (x<20) & index < 1000 % Add index check as a failsafe.
x(index)=x(index-1)+0.5;
fx(index)= x(index)^3 - (5*x(index))^2 + 2^(x(index)) - 10000.*x(index);
p = plot(x, fx, 'ro-', 'LineWidth',2, 'MarkerSize', 10);
index = index + 1;
end
grid on;
hold on;
xlabel('x', 'FontSize', fontSize);
ylabel('fx', 'FontSize', fontSize);
title('While Loop', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
x2(1)=0;
fx2(1) = 0;
index = 2;
for index = 2 : 100000
x2(index)=x2(index-1)+0.5;
fx2(index) = 20000*log(x2(index)) - 3*x2(index);
p = plot(x2, fx2, 'bo-', 'LineWidth',2, 'MarkerSize', 5);
% Exit loop if x >= 20
if x(index) >= 20
break;
end
end
grid on;
xlabel('x', 'FontSize', fontSize);
ylabel('fx', 'FontSize', fontSize);
title('Both Loop', 'FontSize', fontSize);
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Loops and Conditional Statements 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!