【发布时间】:2014-01-17 08:08:19
【问题描述】:
在我的命令窗口中,我可以执行find([0 1 0]),但是当我在函数中运行find 时,如x = find([0 1 0]),编译器告诉我find 没有定义。为什么会这样?
错误是:
??? Error: File: frequentTuples.m Line: 12 Column: 21
"find" previously appeared to be used as a function or command, conflicting with its
use here as the name of a variable.
A possible cause of this error is that you forgot to initialize the
variable, or you have initialized it implicitly using load or eval.
这是代码。错误发生在for循环的第二行。
function [ tuples ] = frequentTuples( k, candidates, transactions, min_support )
%FREQUENTTUPLES Get frequent itemsets of size k
% Detailed explanation goes here
candidate_tuple_is_frequent = zeros(size(candidates, 1));
for i = 1:size(candidates, 1)
columns_of_candidate_items = transactions(:, candidates(i, :));
indices_of_transactions_containing_all_items = find(sum(columns_of_candidate_items') == k);
candidate_tuple_is_frequent(i) = size(indices_of_transactions_containing_all_items) >= min_support;
end
tuples = candidates(find(candidate_tuple_is_frequent, :));
end
【问题讨论】:
-
你能发布你得到的确切代码和错误信息吗?
-
我看不出为什么您显示的代码会发生该错误(而且,将来如果您将其包含为代码而不是图片会更好 - 它会复制代码测试相当困难)。只是出于好奇,如果将
[0 0 1]替换为变量,错误是否仍然存在? -
我猜测该图像并未显示该函数的所有代码(有些代码也被工具提示隐藏)并且您在某处定义了一个名为
find的函数变量。 -
@horchler:我不相信是这种情况,因为函数的范围显然从第 1 行开始到第 15 行结束。在别处定义的变量不应影响显示的代码。
-
第 8 行的警告看起来很奇怪。
标签: matlab