Октавная ошибка: невозможно прочитать переменную в файле .m - PullRequest
1 голос
/ 04 октября 2011

У меня есть файл «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

ошибка: вызывается из:

ошибка: RSSI_to_dBm в строке 3, столбец 4

Как решить эту проблемуЭто?И как я могу загрузить «данные» в имя переменной, такой как «А»?Спасибо за ответ.

Ответы [ 3 ]

0 голосов
/ 04 октября 2011

Проблема в том, что data интерпретируется как имя переменной, но нет переменной с именем data. Проблему легко решить, поставив имя файла в кавычки:

load "data";

Возможно, вам потребуется указать расширение файла, и вы можете назначить результат переменной обычным способом:

A = load "data.txt";
0 голосов
/ 04 октября 2011

Я опробовал решение:

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

    z = data(x, y);

end

Он работает, передавая «данные» в функцию каждый раз, когда я ее вызываю.

0 голосов
/ 04 октября 2011

Я тоже немного сбит с толку, но я бы посмотрел на это:

"ошибка:` данные 'не определены около строки 3, столбец 6 "

Поскольку у вас есть только 5 столбцовв вашем массиве данных, но ошибка относится к столбцу 6.

Найдите столбец 6, и вы можете найти свою проблему.Убедитесь, что размеры матрицы данных совпадают с размерами параметров «x» и «z».Если они косые, это может вызвать проблемы в MATLAB.Я нашел, что проще всего контролировать размеры моих матриц с помощью отладчика.

Надеюсь, что это поможет вам в правильном направлении.

...