1

我编写了一个函数来对具有三行的矩阵的每一行求和。

然后使用具有一行和三列的矩阵来划分先前的结果。

但我不断收到这个错误。我知道下标不应该是小数或负数。但我还是找不到罪魁祸首。请帮忙,谢谢。

% mean_access_time(ipinfo_dist, [306, 32, 192])
% 'ipinfo_dist' is a matrix which have three rows and column is not fixed.

function result = mean_access_time(hash_mat, element_num)
    access_time_sum = sum(rot90(hash_mat));    
    result = bsxfun (@rdivide, access_time_sum, element_num);

例如:

一个=

1 2 
3 4
5 6

乙= 7 8 9

然后我想得到

 [(1+2)/7, (3+4)/8, (5+6)/9]

更新:

>> which rot90
/lou/matlab/toolbox/matlab/elmat/rot90.m
>> which sum
built-in (/lou/matlab/toolbox/matlab/datafun/@uint8/sum)  % uint8 method

罪魁祸首: 我在前面的命令行中使用 mean_access_time 作为变量。

4

1 回答 1

1

似乎您已经用变量名覆盖了内置函数(rot90或)。sum

类型

>> dbstop if error

并运行您的代码。

当错误发生时类型

K>> which rot90
K>> which sum

查看您是否获得了内置函数或变量名。

于 2013-03-11T13:04:57.017 回答