How to combine a while loop and a for loop on one graph

3 visualizaciones (últimos 30 días)
Nicholas
Nicholas el 19 de Sept. de 2014
Comentada: Image Analyst el 19 de Sept. de 2014
the while loop is set up as such
fig=figure(1);
x(1)=0;
fx(1) = 0;
index = 2;
while (x<20) & index < 1000
x(index)=x(index-1)+1
fx(index)= x(index)^3 - (5*x(index))^2 + 2^(x(index)) - 10000.*x(index);
clf;
grid on;
hold on;
xlabel('x', 'FontSize', 10);
ylabel('fx', 'FontSize', 10);
title('While Loop', 'FontSize',10);
p = plot(x, fx, 'ro-', 'LineWidth',2, 'MarkerSize', 10);
index = index + 1;
end
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1])
and the for loop set up as such
fig=figure(1);
x(1)=0;
fx(1) = -3;
index = 2;
for index = 2 : 100000
x(index)=x(index-1)+0.5
fx(index)= 20000*log(x(index))-3*x(index);
clf;
grid on;
hold on;
xlabel('x', 'FontSize', 10);
ylabel('fx', 'FontSize', 10);
title('For Loop', 'FontSize', 10);
p = plot(x, fx, 'bo-', 'LineWidth',4, 'MarkerSize', 10);
% Exit loop if x >= 20
if x(index) >= 20
break;
end
end
% Enlarge figure to full screen.
set(gcf, 'Units', 'Normalized', 'OuterPosition', [0 0 1 1]);
If anyone would be willing to help me find how to place both on one graph I would greatly appreciate it!
The while loop function is f(x) = x^3 - (5*x)^2 + 2^(x) - 10000.*x 0<x<20
The for loop function is f(x) = 20000*log(x) - 3*x 1<x<20

Respuesta aceptada

Image Analyst
Image Analyst el 19 de Sept. de 2014
Try 3*x(index) instead of 3*x.
  2 comentarios
Nicholas
Nicholas el 19 de Sept. de 2014
Thank you! Do you know how I can get the two onto one graph?
Image Analyst
Image Analyst el 19 de Sept. de 2014
Like I said in your duplicate question:
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]);

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

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

Start Hunting!

Translated by