Subscript indices must either be real positive integers or logicals

家住魔仙堡 提交于 2019-12-11 04:33:28

问题


I write a function to sum each row of a matrix which have three rows.

Then use a matrix which have one row and three columns to divide the previous result.

But I keep getting that error. I know the subscript should not be a decimal or negative number. But I still can not find the culprit. Please help, thanks.

% 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);

For example:

A=

1 2 
3 4
5 6

B= 7 8 9

Then I want to get

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

Update:

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

Culprit: I used mean_access_time as a variable in the previous command line.


回答1:


It seems like you have overridden a built-in function ( rot90 or sum ) with variable name.

Type

>> dbstop if error

And run your code.

When the error occurs type

K>> which rot90
K>> which sum

See if you get a built-in function or a variable name.



来源:https://stackoverflow.com/questions/15339173/subscript-indices-must-either-be-real-positive-integers-or-logicals

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!