matlab - Octave中的交易功能不起作用
问题描述
我有一个在 Matlab 中运行时编写(并且可以工作)的 .m 文件,但是当我在 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 并没有以相同的方式解析这个特定的位。
推荐阅读
- github - 如何在不共享 URL 的情况下将来自 Github 的提交的 git diff 发送给其他人?
- sap-cloud-sdk - Jenkins 的代理配置不适用于 groovy 管道脚本?
- r - 是否有一种有效的策略来对客户数据进行模糊连接以识别 R 中的单个客户 ID?
- javascript - 单击按钮时如何显示我的定价表?
- java - 创建内部类的实例如何工作?
- jboss - 引起:org.jboss.modules.ModuleNotFoundException:org.quartz
- python - 如何避免重复数据
- django - 谷歌 django-allauth 配置
- javascript - 用matter.js预测轨迹线
- python - 匹配相似但写作风格不同的字符串