我正在编写一个matlab函数:
function [resultNorm]= explorEffort (n, loop, step)
...
Somelines
...
M=bench(a,b).Y ;
end
但似乎matlab编译器不允许我在函数中使用结构,错误是:
Error: File: explorEffort.m Line: 20 Column: 15
Functions cannot be indexed using {} or . indexing.
P.S:替补定义
bench =
24x5 struct array with fields:
application
dataset
mica
micaNorm
DB
Y
有人能提到我怎么能解决这个问题?
答案 0 :(得分:0)
方法-1
有可能将结构(即此处bench
)定义为文件外部的全局,并在第一次出现global bench;
之前调用bench
。
方法-2
更安全的选择可以是将函数的输入参数中的结构传递为:
function [resultNorm]= explorEffort (n, loop, step, `bench`)
在这种情况下,无需事先进行不必要的全球化。
答案 1 :(得分:0)
我认为主要问题是"替补"是内置的MATLAB(取决于您的matlab版本)。 您可以尝试在将来重命名变量。
你可以运行: X =工作台;或帮助工作台
我之前遇到过类似的问题。