我的工作目录中有一个'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”? 谢谢你的回答。
答案 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
它的工作原理是每次调用时都将“数据”传递给函数。