#matlab #vector #sum #components
Вопрос:
Вопрос: Напишите файл функции, который возвращает сумму положительных компонентов и сумму отрицательных компонентов входного вектора.
Эта проблема должна быть решена в MATLAB, но я совершенно новичок в MATLAB? Может ли кто-нибудь дать представление о том, как это сделать?
Попытки:
V= input(Enter a vector)
function [Ps, Ns] = mysmallfunction(V)
Ps== sum(V(V>0));
Ns= sum(V(V<0));
end
Я не знаю, сработает это или нет.
Комментарии:
1. «Я не знаю, сработает это или нет». Почему бы не запустить его и не посмотреть? Это единственный способ, которым вы можете научиться программировать. Пробуйте и терпите неудачу, пробуйте и терпите неудачу снова и снова, пока не добьетесь успеха.
2. Обратите внимание, что
==
это сравнение . Используйте=
для назначения .
Ответ №1:
У тебя это почти получилось. Ниже приведен сценарий, который проведет вас через передачу аргументов и вызов функции. Небольшой проблемой был двойник ==
для назначения Ps
внутри функции (просто используйте =
его, если это не для условного оператора). Чтобы вызвать/протестировать функцию, просто используйте строку [Ps, Ns] = mysmallfunction(V);
над определением функции (в качестве альтернативы можно поместить определения функций в отдельные сценарии).
V = input("Enter a vector: ");
%Function call%
[Ps, Ns] = mysmallfunction(V);
%Printing the results to the command window%
fprintf("The positive numbers sum up to %fn",Ps);
fprintf("The negative numbers sum up to %fn",Ns);
%*******************************************************************************************************%
%FUNCTION DEFINITION (this can alternatively go in a separate script named: mysmallfunction.m)%
%*******************************************************************************************************%
function [Ps, Ns] = mysmallfunction(V)
Ps = sum(V(V>0));
Ns = sum(V(V<0));
end
Командное окно (пример ввода)
Важно включить квадратные скобки, []
в данном случае при вводе вектора.
Введите вектор: [1 2 3 -2 -5]