В какой-то момент в вашем M-файле вы печатаете каждую строку данных в командном окне, предположительно используя DISP или FPRINTF . Вы можете заменить эту строку следующим:
data = [data; T price];
Где T
и price
- переменные, содержащие ваши данные. Каждый раз, когда вы вызываете вышеуказанную строку (скажем, в цикле), она добавляет ваши данные как новую строку в переменную data
. В какой-то момент в начале вашего M-файла вы должны будете добавить следующую инициализацию:
data = []; %# An empty array
Добавление значений в массив, подобный этому, иногда может быть неэффективным, поэтому, если вы заранее знаете, сколько строк данных вы соберете, вы можете вместо этого предварительно выделить data
с заданным размером. Например, если вы знаете, что у вас будет 4 пары значений для T
и price
, вы можете инициализировать data
следующим образом:
data = zeros(4,2); %# A 4-by-2 array of zeroes
Затем, когда вы добавляете данные в массив, вы вместо этого делаете следующее:
data(i,:) = [T price]; %# Fill row i with data
Еще одна проблема, которую стоит рассмотреть, - это ли ваш M-файл script или function . M-файл функции имеет строку типа function output = file_name(input)
вверху, а M-файл скрипта - нет. Запуск M-файла сценария эквивалентен вводу всего содержимого файла непосредственно в командное окно MATLAB, поэтому все переменные, созданные в M-файле, доступны в рабочей области.
Если вы используете M-файл функции, все созданные переменные являются локальными для функции, и все, что вы хотите использовать в рабочей области, должны быть переданы как выходные данные функции. Например, верхняя строка вашего M-файла функции может выглядеть так:
function data = your_file
где your_file
- имя M-файла, а data
- возвращаемая переменная. Когда вы вызываете эту функцию из рабочей области, вам нужно будет записать вывод в переменную:
outputData = your_file();
Теперь у вас есть содержимое переменной data
из your_file
, сохраненное как новая переменная outputData
в рабочей области.