矩阵中所有值的总和(Matlab)

时间:2015-02-03 17:14:12

标签: matlab matrix

所以我试图创建一个matlab函数,它接受两个输入,一个矩阵和一个值,并返回矩阵中除了给定值的所有实例之外的所有值的总和。到目前为止,这是我写的代码:

function [total] = sumAllExcept(matrix, except)
    total = 0;
    for i = 1:size(matrix, 1)
        for k  = 1:size(matrix, 2)
            if(matrix(i, k) ~= except)
                total = total + matrix(i,k);
            end
        end
    end
end

尝试运行程序时收到的错误消息是: “未定义的函数'sumAllExcept'用于'double'类型的输入参数。” 如果你能告诉我这方面的错误并修复你能做的任何事情,我将不胜感激。谢谢!

1 个答案:

答案 0 :(得分:2)

使用logical indexing过滤掉except之后对数组求和:

total = sum(matrix( matrix ~= except ));

matrix ~= except上使用逻辑索引matrix的结果会返回一个列向量,因此只需要一个sum


错误" Undefined function 'sumAllExcept' for input arguments of type 'double'."可能是因为函数不在MATLAB的路径上,或者函数名sumAllExcept与文件名不匹配(即sumAllExcept.m)。