我正在用MATLAB编写一个插入排序。我这样调用我的函数:
>> A = [5 4 3 2 1]
A =
5 4 3 2 1
>> insertion_sort(A)但是当我运行它的时候,我得到了错误
??? Attempt to reference field of non-structure array.
Error in ==> insertion_sort at 6
for j=2:original.length以下是我的原始代码:
function sorted = insertion_sort(original)
for j=2:original.length
key = original(j);
i = j-1;
while i > 0 && original(i) > key
original(i+1) = original(i);
i = i-1;
end
original(i+1) = key;
end
sorted = original;
end有人知道我做错了什么吗?
发布于 2010-09-21 00:15:47
尝试使用numel(original)而不是original.length。MatLab矩阵是基本类型,而不是对象,并且它们没有长度属性。
发布于 2010-09-21 00:15:33
您希望使用numel(original)而不是original.length。Fundamental data types没有length方法,所以它会错误地认为您正在尝试访问structure中名为length的字段,而original并非如此。
https://stackoverflow.com/questions/3753304
复制相似问题