Подтвердить что ты не робот

Как я могу извлечь данные из файла .fig в MATLAB?

Я знаю, что это действительно базовый, но я новичок в MATLAB. После открытия файла .fig, как вы на самом деле работаете с построенными данными в окне команд? Все, что я вижу, это сюжет. Я не уверен, как получить данные.

4b9b3361

Ответ 1

На самом деле вам даже не нужно отображать цифру, чтобы получить данные. Файлы FIG хранятся в стандартном формате Matlab MAT, который вы можете прочитать, используя встроенную функцию load(). Обработчики фигур и данные хранятся в структуре, которую вы можете легко понять и обработать.

Ответ 2

Здесь очень простой способ:

Щелкните объект, из которого вы хотите получить данные. Не будет указаний на то, что вы нажали на него.

>> xd = get(gco,'XData');
>> yd = get(gco,'YData');

Иногда бывает сложно щелкнуть по строке или другому объекту. Если у вас есть эта проблема, нажмите на оси, содержащие интересующий вас ребенок (ren), а затем:

>> kids = get(gca,'Children');

Это даст вам массив ручек для разных детей. Вы можете попробовать получить их по одному, указав их на детей или использовать следующие данные, чтобы сразу получить все данные. Это вернет результаты в виде массива ячеек, что может быть немного сложным, если вы раньше не использовали их:

>> xd = get(kids,'XData');
>> yd = get(kids,'YData');
>> xd1 = xd{1}; %# X Data from first line

Ответ 3

Попробуйте hgload, а затем высушите структуру графической дескриптора, которую он возвращает. Например, если вы построите и сохраните следующее:

x=0:.01:10;
y=sin(x);
h=plot(x,y);
saveas(h,'testfigure.fig');

Снимите рабочее пространство и откройте сохраненную цифру, используя hgload:

clear
close all
h=hgload('testfigure.fig');

Вы можете проверить фигуру h, вызывая

get(h)

Или углубитесь в оси/заголовки/легенды, позвонив

ch=get(h,'Children');

Если вы используете код в моем примере, у вас должен быть только один ребенок для фигуры, который будет осями. Вызовите детей осей, и у вас должна быть одна строка.

l=get(ch,'Children');

Затем вызовите поля "Xdata" и "Ydata" строки, и у вас есть исходные данные.

x=get(l,'Xdata');
y=get(l,'Ydata');

Если у вас более сложная фигура, чем просто оси, она становится немного более жесткой. Вам нужно будет изучить каждый ребенок, чтобы определить, был ли этот сюжет вы хотите извлечь данные.

Ответ 4

Используйте команду HGLOAD. Ссылка доступна здесь.