Output of function not variable I assign

6 visualizaciones (últimos 30 días)
Kyle
Kyle el 17 de Mzo. de 2013
When I run this function I want that vector to be called u so I can use it in another script file. Instead it calls it "ans" which I can't use. What is going on? Here is the function, just run it for n=4.
function [u]=finitevolume_KG(n)
%n is the number of volumes
delta_x = 1/n;
A=zeros(n-1);
A(1,1)=1;
A(1,2)=-1;
for i=2:n-2
A(i,i-1)=-1;
A(i,i)=2;
A(i,i+1)=-1;
end
for i=n-1
A(i,i-1)=-1;
A(i,i)=2;
end
f=ones(n-1,1);
f_x=((delta_x)^2)*f;
u = (A)\(f_x);

Respuestas (2)

per isakson
per isakson el 17 de Mzo. de 2013
Editada: per isakson el 18 de Mzo. de 2013
Try the call
u = finitevolume_KG( 4 )
and make it a habit to end your functions with the keyword "end".
  2 comentarios
Jan
Jan el 18 de Mzo. de 2013
I still omit the trailing "end" to support the small part of Matlab 6.5 users.
per isakson
per isakson el 19 de Mzo. de 2013
Yes, but "end" kind of indicates the end of the workspace of the function.

Iniciar sesión para comentar.


Jan
Jan el 18 de Mzo. de 2013
Some simplifications:
function u = finitevolume_KG(n)
%n is the number of volumes
delta_x = 1/n;
A = zeros(n-1, n-1);
A(1,1) = 1;
A(1,2) = -1;
A(2:n-2, 1:n-3) = -1;
A(2:n-2, 2:n-2) = 2;
A(2:n-2, 3:n-1) = -1;
A(n-1, n-2) = -1;
A(n-1, n-1) = 2;
u = A \ (delta_x ^ 2 * ones(n-1, 1));

Categorías

Más información sobre Workspace Variables and MAT Files 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