Not enough input arguments? Why does this not work?

조회 수: 13 (최근 30일)
Tab for Lab
Tab for Lab 2015년 10월 4일
편집: Stephen23 2015년 10월 4일
I have this function:
function [class_type] = valclass(num, class_res)
a = (num)
b = (class_res)
class_type = b(a)
end
Why does it not work?
I am basically saying this:
char(2)
single(2)
int32(2)
double(2)
and i want it to convert respectively but its not doing it. Instead i get an error message saying not enough inputs?

답변 (1개)

Stephen23
Stephen23 2015년 10월 4일
편집: Stephen23 2015년 10월 4일
You don't need to write a function, just use the inbuilt cast function:
>> X = 1.234
X =
1.234
>> class(X)
ans =
double
>> Y = cast(X,'int64')
Y =
1
>> class(Y)
ans =
int64
>> Z = cast(X,'single')
Z =
1.234
>> class(Z)
ans =
single
OR you could use function handles:
>> F = @single
F =
@single
>> A = F(X)
A =
1.234
>> class(A)
ans =
single
  댓글 수: 2
Tab for Lab
Tab for Lab 2015년 10월 4일
Thank You so much, but i think i can still incorporate it into a function by doing:
cast(num, class_res) am I right?
Stephen23
Stephen23 2015년 10월 4일
편집: Stephen23 2015년 10월 4일
Of course you can include it in another function, if you want to.
But considering the function that you defined in your original question there is no point, as they would be doing exactly the same thing:
cast(val,class_res)
valclass(val,class_res)
You can see that there is no point in this, as calling cast directly would be much simpler. Of course if your actual function is longer and more complicated that what you showed us in your question then you can include cast inside of it.
Please click the Accept button if my answer has resolved your question.

댓글을 달려면 로그인하십시오.

카테고리

Help CenterFile Exchange에서 Logical에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by