首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MATLAB错误-?尝试引用非结构数组的字段

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

Stack Overflow用户
提问于 2010-09-21 00:08:17
回答 2查看 31.4K关注 0票数 2

我正在用MATLAB编写一个插入排序。我这样调用我的函数:

代码语言:javascript
复制
>> A = [5 4 3 2 1]

A =

     5     4     3     2     1

>> insertion_sort(A)

但是当我运行它的时候,我得到了错误

代码语言:javascript
复制
??? Attempt to reference field of non-structure array.

    Error in ==> insertion_sort at 6
        for j=2:original.length

以下是我的原始代码:

代码语言:javascript
复制
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

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-09-21 00:15:47

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

票数 3
EN

Stack Overflow用户

发布于 2010-09-21 00:15:33

您希望使用numel(original)而不是original.lengthFundamental data types没有length方法,所以它会错误地认为您正在尝试访问structure中名为length的字段,而original并非如此。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3753304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档