Function g Returns Only 2 Values Instead of Array - Vectorized Operation Issue in MATLAB

조회 수: 4 (최근 30일)
I'm encountering an issue with a vectorized function in MATLAB that's not returning the expected array of results. The function g and set of values of x2 is defined in the above. When I apply g to an array x2, I expect to get an array of transformed values. However, I only receive two values in the output array Z.
I don't think it's a format or display issue, as i've checked on the length and size of Z. Does anyone know what's wrong with this issue?
Thanks in advance for the assistance :)
  댓글 수: 2
Stephen23
Stephen23 2024년 4월 16일
편집: Stephen23 2024년 4월 16일
"Does anyone know what's wrong with this issue?"
You defined an anonymous function with one input argument x2... but inside that function you completely ignored the input argument x2 and instead referred to the variable x that apparently exists in the workspace. When you check the size of x you will find that it has size 1x2.

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

채택된 답변

Alan Stevens
Alan Stevens 2024년 4월 16일
You have g as a function of x2, but x2 doesn't appear on the right-hand side!

추가 답변 (1개)

Rishi
Rishi 2024년 4월 16일
Hi Sheryl,
I understand from your question that you want to know why is the length of the output from the anonymous function 'g' 2 even though the length of the vector 'x2' is 9.
That is because of the way you have defined the anonymous function 'g'. You have set the input argument to be 'x2', but inside the function, you perform the actions on some other variable 'x'. In this case, instead of taking the values from 'x2' in the function, it utilises some other variable 'x' fron your workspace.
You can redefine your function 'g' as below:
g = @(x) 2.*((sin(7.*x)./4)+((x.^2)./9)+1)
You can learn more about anonymous function from the below documentation:
Hope this helps!

카테고리

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

제품


릴리스

R2024a

Community Treasure Hunt

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

Start Hunting!

Translated by