gpt4 book ai didi

matlab - Octave 中的交易功能不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 20:19:54 25 4
gpt4 key购买 nike

我有一个 .m 文件,它在 Matlab 中运行时编写(并且有效),但是当我在 Octave 中运行它时,我得到一个错误。我知道这两个程序有不同之处,我只是不太清楚如何重写有问题的代码行以使其正常工作。

这是代码。最后一行是导致问题的那一行:

dirr = '/my/file/path/'
foldlist = dir([dirr '*.wav']);
foldname={};
[foldname{1:length(foldlist),1}] = deal(foldlist.name)

这是运行时出现的错误:

error: Invalid call to deal.  Correct usage is:
-- Function File: [R1, R2, ..., RN] = deal (A)
-- Function File: [R1, R2, ..., RN] = deal (A1, A2, ..., AN)

看起来很简单,鉴于错误解释,我只是不知道如何重写。

最佳答案

你应该能够做到这一点:

foldname={foldlist.name};

这也是 MATLAB 中更好的方法。

foldlist.name 是一个逗号分隔的值列表。通过在其周围放置大括号将它们捕获在元胞数组中。相当于{a,b,c}

原始代码的问题在于,在初始化 foldname={} 之后,索引 foldname{1:length(foldlist),1} 是非法的。当索引超出赋值左侧的边界时,MATLAB 倾向于添加空单元格。 Octave 也是如此,但是索引数组周围有方括号,Octave 似乎没有以相同的方式解析这个特定位。

关于matlab - Octave 中的交易功能不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50145303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com