Output of function not variable I assign
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
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);
0 comentarios
Respuestas (2)
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
el 18 de Mzo. de 2013
I still omit the trailing "end" to support the small part of Matlab 6.5 users.
per isakson
el 19 de Mzo. de 2013
Yes, but "end" kind of indicates the end of the workspace of the function.
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));
0 comentarios
Ver también
Categorías
Más información sobre Workspace Variables and MAT Files en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!