八度错误:无法读取.m文件中的变量

时间:2011-10-04 01:53:53

标签: function file-io octave

我的工作目录中有一个'data'文件'lab1.m'。 这是他们的内容。

数据:

0 1 2 3 4

2 0 9 2 7

5 6 3 4 7

lab1.m:

load data
function y = RSSI_to_dBm(x, z)

    y = data(z, x);

end

然而,当我调用RSSI_to_dBm(2,2)时出错:

八度:30> RSSI_to_dBm(2,4)

错误:第3行第6列附近未定义`data'

错误:来自:

错误:第3行第4列的RSSI_to_dBm

我该如何解决? 如何将“数据”加载到变量名称,例如“A”? 谢谢你的回答。

3 个答案:

答案 0 :(得分:0)

我也有点困惑,但我会调查一下:

“错误:'数据'未定义在第3行第6列附近”

因为数据数组中只有5列,但错误是指第6列。

查找第6列,您可能会发现问题所在。确保数据矩阵的尺寸与“x”和“z”参数的尺寸相匹配。如果它们是歪斜的,这可能会导致MATLAB出现问题。我发现使用调试器监控矩阵的尺寸最简单。

希望能帮助你朝着正确的方向前进。

答案 1 :(得分:0)

问题是data被解释为变量名,但没有名为data的变量。将文件名放在引号中可以轻松解决问题:

load "data";

您可能需要指定文件扩展名,并且可以通常的方式将结果分配给变量:

A = load "data.txt";

答案 2 :(得分:0)

我尝试过一个解决方案:

load data
function z = RSSI_to_dBm(x, y, data)

    z = data(x, y);

end

它的工作原理是每次调用时都将“数据”传递给函数。