プール内でゲノムが生存している連続ラウンドの最大数を数えるスクリプトを作成しようとしています。次のエラーが得られます(keys(livedlong)
またはvalues(livedlong)
は、というかむしろ呼び出し):matlabエラー: 'subsindex'関数が 'containers.Map'クラスの値に定義されていません
dd = dir('*.csv');
fileNames = {dd.name};
data = cell(numel(fileNames),2);
data(:,1) = regexprep(fileNames, '.csv','');
for i = 1:numel(fileNames)
data{i,2} = dlmread(fileNames{i});
end
cc = distinguishable_colors(numel(fileNames)); % get better colormap
livedlong = containers.Map; % contains all the streaks
for k = 1:numel(fileNames)
strat = data{k,1}(10:end); % get strategy name
XY = data{k,2}; % get data
X = XY(:,1); % get rounds
Y = XY(:,2); % get #tiles
streak = 1; % set streak counter to 1
longestStreak = streak; % set longestStreak to 1
%%% Calculate the streaks!
for l = 1:(numel(X)-1)
if ((X(l)+1) == X(l+1))
streak = streak + 1;
if (streak > longestStreak)
longestStreak = streak;
end
else
streak = 1;
end
end
livedlong(strat)=longestStreak; % save the streaks
end
k = keys(livedlong);
v = values(livedlong);
for i = 1:length(livedlong)
plot(k{i}, v{i}, 'o', 'color', cc(i,:))
end
しかし、最後の5行は:私は、これは以下のコードを使用して行うFunction 'subsindex' is not defined for values of class 'containers.Map'.
と私は理由はわかりません。私はしばらく前にコマンドウィンドウのマップ上のコマンドを使用することができましたが、今はそれもできません。
機能している[MCVE]と*実際のエラーメッセージを提供していれば、あなたの言い換えに役立つでしょう。あなたはおそらく、 'keys'や' values'のどこかにオーバーロードされているか、 'k'や' v'が期待しているデータ型ではありません。 – excaza