Undefined function or variable 'x'.
조회 수: 1 (최근 30일)
이전 댓글 표시
Hy,
I have a problem, i can't solve with my program. I download a file in mathwoks name shark it is the simulation of an underwater vehicule.
But when i try to run the functions i have this warning message Undefined function or variable 'x'.
this is the function :
function z=vp(x,y)
% z=vp(x,y); z = 3d cross product of x and y
% vp(x) is the 3d cross product matrix : vp(x)*y=vp(x,y).
z=[0 -x(3) x(2);
x(3) 0 -x(1);
-x(2) x(1) 0 ];
if nargin>1, z=z*y; end
댓글 수: 2
답변 (2개)
Mohammad Haghighat
2016년 10월 4일
You cannot just "run the function" with no input arguments. It has to be called from another function and the X and Y must be given as its input arguments.
댓글 수: 0
Steven Lord
2016년 10월 4일
When you call the function, you must specify values for the input arguments listed in the definition of that function. In this case, that definition from the first line of the function is:
function z=vp(x,y)
This function is defined to accept two input arguments (x and y) and return one output argument (z.) Those are the maximum number of inputs and outputs you can specify. (I'm explicitly ignoring varargin and varargout in this discussion for simplicity.)
Specifying fewer output arguments than the function is defined to return is okay unless the author specifically added code to require a certain number of outputs. In this case the author did not add that code. So you can call vp with either 0 or 1 outputs; calling it with 2 will cause an error.
Specifying fewer input arguments than the function is defined to accept can be okay, but the author of the function needs to handle that case in the code itself. In this case the author did add in code to support the case where the user only specific 1 input argument, as the last line of the function. The author did not add code to support the case where the user specified 0 input arguments. So you need to call this function with either 1 or 2 input arguments; calling it with 0 inputs or more than 2 inputs will error.
Based on the error you tried to call it with 0 inputs.
vp
Specify a vector with at least three inputs as the first input argument and it will succeed. For example:
vp([1 2 3]) % or
z = vp([4; 5; 6])
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Oceanography and Hydrology에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!