fprintf into a stored variable
1 visualización (últimos 30 días)
Mostrar comentarios más antiguos
WhatIsMatlab-
el 12 de Feb. de 2016
Comentada: per isakson
el 15 de Feb. de 2016
Instead of using fprintf I want to store all the i, xe, and f(xe) into a vector instead. That way I can call them later. Also I had another problem where I wanted to use another 'i' later on in the code. But it only allowed me to use 1. How can you use two different 'i's. So they don't get mixed up.
f = @(x) x^2-6;
xl = 0;
xu = 10;
xe = (xu+xl)/(2);
acc = 0.00001;
while abs(f(xe))> acc
i = i + 1;
fprintf('%d)\t%f\tf(x)=%f\n',i,xe,f(xe));
if (f(xe)*f(xl)) < 0
xu = xe;
else
xl = xe;
end
xe = (xu+xl)/2;
end
0 comentarios
Respuesta aceptada
per isakson
el 13 de Feb. de 2016
Editada: per isakson
el 13 de Feb. de 2016
Add
M = zeros( 0, 2 );
before the loop and replace
fprintf('%d)\t%f\tf(x)=%f\n',i,xe,f(xe));
by
M( end+1, 1:2 ) = [ xe, f(xe) ];
You'll get a warning about "Growing ..." , but if speed is acceptable ignore it.
 
"fprintf into a stored variable"   If understood literally, replace
fprintf('%d)\t%f\tf(x)=%f\n',i,xe,f(xe));
by
C{end+1,1} = sprintf('%d)\t%f\tf(x)=%f\n',i,xe,f(xe));
and add C=cell(0,1) before the loop
10 comentarios
per isakson
el 15 de Feb. de 2016
- "but I got an error"   we cannot help if you don't show what you did and what error Matlab reported.
- "a better way of achieving this"   length(s) and length(m) tell the number of iterations in the two loops.
per isakson
el 15 de Feb. de 2016
This example illustrates
- two ways to count the number of loop iterations
- two ways to store result in the loop
N = 1e6;
M1 = zeros( 0 );
ii = 0;
M2 = nan( N, 1 ); % Pre-allocate
while sqrt(ii) < sqrt(N) - 10
ii = ii + 1;
M1( end+1, 1 ) = ii;
M2(ii) = ii;
end
M2(isnan(M2)) = [];
disp( all( M2 == M1 ) )
disp( ii )
disp( length(M1) )
disp( length(M2) )
outputs
1
980100
980100
980100
where "1" shows that M1 and M2 are identical.
[Run and Time], i.e. the profiler, shows that "M1" is slower.

Más respuestas (0)
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!