Вызов элемента вектора внутри функции в Matlab - PullRequest
0 голосов
/ 15 апреля 2020

Я новичок в Matlab и пытаюсь определить простую функцию, но продолжаю сталкиваться с ошибкой. Подробности:

1) V - вектор 31x1;

2) Функция mypi принимает один вход, который является скалярным (от 0 до 30). Он находит соответствующий элемент в векторе V и сохраняет его в z.

3) Матрица A представляет собой вектор строки с двумя элементами 0 и z-10.

4) y, то, что меня интересует в вычислениях, является линейной функцией от максимума вектора A.

Однако Matlab выдает ошибку и не распознает элемент x в векторе V. Кто-нибудь может подсказать, как мне решить эту проблему? Буду благодарен Спасибо.

function    y=mypi(x)
            z=V(x);
            A=[0, z-10];
            y=500+50*max(A);
end 

1 Ответ

1 голос
/ 15 апреля 2020

вы должны передать V в mypi или сделать его видимым для этой функции, определив его как global. Но зачем передавать в эту функцию и V, и индекс x вместо прямой передачи V (x) или z?

function    y=mypi(z)
            A=[0, z-10];
            y=500+50*max(A);
end

и вызывать ее по mypi(V(x))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...