【发布时间】:2018-09-26 13:04:30
【问题描述】:
我有一个大小为 106 x 103 的矩阵(类型:double)。该矩阵代表一个时间步长(一天)的欧洲网格温度数据。
对于每一天,我想使用我在 Matlab 中编码的公式,根据矩阵中每个“单元”(i,j 元素)记录的温度计算一个物种的度日(热时间)基于正弦波方法。
因此,最终,我想要做的是能够对我的矩阵进行计算,这将为每个网格单元(i,j 元素)提供单独的输出,具体取决于那里记录的温度数据。 我可以用一个循环来做到这一点,但是我必须将这些学位日累积多年,所以我宁愿找到一种方法将计算同时应用于每日矩阵中的每个元素(然后循环遍历这些天数(矩阵) )。 根据我的阅读,如果您的矩阵是单元阵列(我的不是),您可以使用 cellfun。 然后我也在查看 bsxfun 选项,但似乎这些函数只是标准函数..比如平均值、最大值等。 所以现在,我正在考虑将 arrayfun 与我从算法创建的函数结合使用来计算学位天数。 我一直在尝试编写一个测试函数,但 Matlab 不断抛出同样的错误: 我输入:
function output=degreedays(x)
Matlab 会返回:
Error: Function definitions are not permitted in this context.
谁能告诉我我做错了什么?为什么不接受函数名的声明?
【问题讨论】:
-
function...是函数定义。它不可能在任何地方发生,通常只发生在包含所述功能的文件的顶部。一旦你有了这个功能,你就可以像outStuff = degreedays(yourData);一样使用它