Borrar filtros
Borrar filtros

Error:not enough input arguments

2 visualizaciones (últimos 30 días)
Laura Ristea
Laura Ristea el 4 de En. de 2023
Respondida: Steven Lord el 4 de En. de 2023
I need to calibrate an magentometer but when i press run it says that i don't have enough input arguments on line 24.Any advice?
function calCo = calibrate(out)
%Initially no offset and unity gain
calCo.offset = 0;
calCo.g = 1;
mx_max = -1e9;
my_max = -1e9;
mz_max = -1e9;
mx_min = 1e9;
my_min = 1e9;
mz_min = 1e9;
%Display wait bar dialog box to show calibration is running
statusBox = waitbar(0, 'Rotate magnetometer in the x-y plane', ...
'Name','Calibration');
%Start a stopwatch timer
tic;
t_stop=10;
%Read raw magnetometer ouput for t_stop seconds as it is rotated
while toc <= t_stop
[mx, my, mz] = readMag(out, calCo);
%Store max/min values=Nort/South;
mx_max = max(mx_max,mx);
my_max = max(my_max,my);
mx_min = min(mx_min,mx);
my_min = min(my_min,my);
%Update wait bar
waitbar(toc/t_stop, statusBox)
end
%Reset timer and waitbar ,with a delay of 1 second to read instructions
waitbar(0, statusBox, 'Rotate magnetpmeter in the x-z plane')
pause(1);
%Read raw magnetometer ouput for t_stop seconds as it is rotated
while toc<= t_stop
[mx, my, mz] = readMag(out,calCo);
%Store max/min values=Nort/South;
mz_max = max (mz_max,mz);
mz_min = min (mz_min, mz);
%Update wait bar
waitbar(toc/t_stop, statusBox)
end
%Close wait bar
close(statusBox)
%Calculate offsets for each axis
offsetX = mx_max;
offsetY = my_max;
offsetZ = mz_max;
%Calculate scaling factors
gainX = (mx_sin - offsetX)/180;
gainY = (my_min - offsetY)/180;
gainZ = (mz_min - offsetZ)/180;
calCo.offset = [offsetX offsetY offsetZ];
calCo.g = [gainX,gainY,gainZ];
mbox = msgbox('Sensor calibration complete');
uiwait(mbox);
end

Respuestas (1)

Steven Lord
Steven Lord el 4 de En. de 2023
You must call your calibrate function with an input argument (whatever your readMag function requires as its first input). You can do this by typing calibrate followed by that input argument in parentheses like calibrate(42) [if 42 was a valid first input to readMag] or (if you want to use the Run button to run your code) by following the steps on this documentation page.

Categorías

Más información sobre Dialog Boxes 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