How to fix the error[Not enough input arguements]

7 visualizaciones (últimos 30 días)
Hanwen Zhang
Hanwen Zhang el 2 de Nov. de 2020
Comentada: Ameer Hamza el 2 de Nov. de 2020
Hi I'm very new to MATLAB and I met this error:
>> TDMAsolver
Not enough input arguments.
Error in TDMAsolver (line 3)
n = length(d); % n is the number of rows
This code is given by my teacher so it should work, but no matter how many times I try, I still can't run the code. Could anybody help me on this? THX
function x = TDMAsolver(a,b,c,d)
%a, b, c are the column vectors for the compressed tridiagonal matrix, d is the right vector
n = length(d); % n is the number of rows
% Modify the first-row coefficients
c(1) = c(1)/b(1); % Division by zero risk. d(1) = d(1)/b(1);
for i = 2 : n - 1
temp = b(i) - a(i) * c(i - 1);
c(i) = c(i)/temp;
d(i) = (d(i) - a(i) * d(i - 1))/temp;
end
d(n) = (d(n) - a(n) * d(n - 1))/(b(n) - a(n) * c(n - 1)); % Now back substitute.
x(n) = d(n);
for i = n - 1 : -1 : 1
x(i) = d(i) - c(i) * x(i + 1);
end
end

Respuesta aceptada

Ameer Hamza
Ameer Hamza el 2 de Nov. de 2020
You need to pass the values of inputs a, b, c, d. For example
a = rand(10,1);
b = rand(10,1);
c = rand(10,1);
d = rand(10,1);
TDMAsolver(a,b,c,d)
  2 comentarios
Hanwen Zhang
Hanwen Zhang el 2 de Nov. de 2020
thanks for your answer! I just realized that Matlab is very different from Pyhton. I thought after defining this function and run, I would get no error like Pyhton. However in Matlab this is not the case.
Ameer Hamza
Ameer Hamza el 2 de Nov. de 2020
I am glad to be of help!
In MATLAB, the functions have their own workspace and cannot automatically access variables from other workspaces unless you define them as global.

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Creating and Concatenating Matrices 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!

Translated by