【问题标题】:MATLAB error - ??? Attempt to reference field of non-structure arrayMATLAB 错误 - ???尝试去引用非结构数组字段
【发布时间】:2010-09-20 16:08:16
【问题描述】:

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

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

【问题讨论】:

    标签: matlab sorting insertion-sort


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您想使用numel(original) 而不是original.lengthFundamental data types 没有 length 方法,因此 MATLAB 错误地认为您正在尝试访问 structure 中名为 length 的字段,而 original 不是。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-26
        • 2023-03-14
        • 1970-01-01
        • 2012-05-11
        • 2021-05-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多