1

3行の行列の各行を合計する関数を作成します。

次に、1行3列の行列を使用して、前の結果を分割します。

しかし、私はそのエラーを受け取り続けます。下付き文字は10進数や負の数であってはならないことを私は知っています。しかし、私はまだ犯人を見つけることができません。助けてください、ありがとう。

% 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を使用しました。

4

1 に答える 1

1

rot90組み込み関数(またはsum)を変数名でオーバーライドしたようです。

タイプ

>> dbstop if error

そして、コードを実行します。

エラーが発生した場合はタイプ

K>> which rot90
K>> which sum

組み込み関数または変数名を取得するかどうかを確認してください。

于 2013-03-11T13:04:57.017 に答える