首页 > 解决方案 > 编写一个函数文件,返回输入向量的正分量之和和负分量之和

问题描述

问题:编写一个函数文件,返回输入向量的正分量之和和负分量之和。

这个问题必须在 MATLAB 中完成,但我在 MATLAB 中是全新的?谁能给出想法如何做到这一点?

尝试:

V= input(Enter a vector) 
function [Ps, Ns] = mysmallfunction(V)
Ps== sum(V(V>0));
Ns= sum(V(V<0));
end

我不知道它是否会起作用。

标签: matlabvectorsumcomponents

解决方案


你几乎拥有它。下面是一个脚本,它将指导您传递参数和调用函数。一个小问题是函数内==分配的 double 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 %f\n",Ps);
fprintf("The negative numbers sum up to %f\n",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]


推荐阅读