我编写了一个函数来对具有三行的矩阵的每一行求和。
然后使用一行和三列的矩阵来划分前一个结果。
但我一直收到这个错误。我知道下标不应该是小数或负数。但我仍然找不到罪魁祸首。请帮忙,谢谢。
% 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);
例如:
A =
1 2
3 4
5 6
B = 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作为变量。
答案 0 :(得分:1)
您似乎已覆盖了带有变量名称的内置函数(rot90
或sum
)。
类型
>> dbstop if error
运行你的代码。
发生错误时输入
K>> which rot90
K>> which sum
查看是否有内置函数或变量名。