MATLAB: Understanding the meaning of a part of a code

understanding the meaning of a part of a code

Hi everyone,
Could anyone help me to understand the meaning of the following sentence from a code. Thanks in advance for your help.
zci = @(v) find( v(1:end-1).*circshift(v(2:end), [-1 0]) <= 0)

Best Answer

  • Mohammed,
    What you wrote there is a function that you're storing in zci. The at sign (@) tells Matlab you're about to give a variable (or multiple variables) and declare how those variables will be used in a function.
    Once you have declared zci, you should be able to input values, such as:
    zci(-1:0.1:0)
    which would result in an answer of 10.
    The function that's being declared takes your variable, v, that you're passing to it, performs an operation, and finds where that's less than or equal to 0.
    Hope that helps!