MATLAB Answers

0

Question about making a function file with vectors and variables

Asked by Portgas Ace on 20 Sep 2012
Question deleted by James. Partially restored by Matt Fig:
a part of my program has syntax that looks like this,
for n=1:1:A1 if (Z(n)<3 | Z(n)>9 | Z(n)~=Z(n)) disp('One or more of the element/s is/are not included.'); return;
elseif ~isnumeric(Z(n)) disp('There is error') return; end
so if i enter:
function_name ([3 4 A], [4 5 6])
matlab says: Undefined function or variable 'A'.

  2 Comments

Why do you delete your question? Then the work of the once, who wanted to help you, is lost. Not friendly.
OP:
a part of my program has syntax that looks like this,
for n=1:1:A1 if (Z(n)<3 | Z(n)>9 | Z(n)~=Z(n)) disp('One or more of the element/s is/are not included.'); return;
elseif ~isnumeric(Z(n)) disp('There is error') return; end
so if i enter:
function_name ([3 4 A], [4 5 6])
matlab says: Undefined function or variable 'A'.

Sign in to comment.

4 Answers

Answer by Wayne King
on 20 Sep 2012
Edited by Wayne King
on 20 Sep 2012

MATLAB will do that on its own.
>> clear A % in case A is in the workspace
>> a=[1 2 A 4]
The MATLAB error message will be:
Undefined function or variable 'A'.

  1 Comment

but im using a function file. im only required to input a vector with only numbers as value and if i entered a non-number, i should show an error. so ex, a = [1 2 A 4]; there should be an error saying ive entered a wrong input. something like that. :(

Sign in to comment.


Answer by Wayne King
on 20 Sep 2012

If A is not a variable in the workspace, then inputting it into a function will cause an error
function sumout = testfunction(input1 )
sumout = sum(input1);
end
If you call that function with
>>sumout = testfunction([1 2 3 A 4]);
throws an error. You can always use isnumeric() if you want
if ~isnumeric(input)
error( )
end

  1 Comment

hope this solves my problem. thank you! :D

Sign in to comment.


Answer by Jan
on 20 Sep 2012

After A = 1; a = [1,2,A,4]; there is no method to detect, if a has been created using numbers, functions or other variables. When A is e.g. a character array, it is converted to double implicitly:
A = 'Z';
a = [1, 2, A, 4] % ==> [1, 2, 90, 4]
Here A is converted to the type DOUBLE and the ASCII value 90 is stored. Afterwards a is a double vector as all its elements have the same type.
I think, you have a different problem. Perhaps you want to test the class of A before inserting into the vector.

  0 Comments

Sign in to comment.


Answer by Portgas Ace on 20 Sep 2012

a part of my program has syntax that looks like this,
for n=1:1:A1 if (Z(n)<3 | Z(n)>9 | Z(n)~=Z(n)) disp('One or more of the element/s is/are not included.'); return;
elseif ~isnumeric(Z(n)) disp('There is error') return; end
so if i enter:
function_name ([3 4 A], [4 5 6])
matlab says: Undefined function or variable 'A'.

  0 Comments

Sign in to comment.