MATLAB错误-???尝试引用非结构数组的字段

MATLAB错误-???尝试引用非结构数组的字段,matlab,sorting,insertion-sort,Matlab,Sorting,Insertion Sort,我正在用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:o

我正在用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

有人知道我做错了什么吗?

你想用
numel(original)
而不是
original.length
。没有
length
方法,因此MATLAB错误地认为您试图访问a中名为
length
的字段,而
original
不是。

尝试
numel(original)
而不是
original.length
。MatLab矩阵是基本类型,不是对象,它们没有长度属性