У меня есть .fig файл, который я хочу изменить только 2 значения по оси x.Как изменить некоторые значения оси x в файле .fig в MATLAB?
Как это возможно, если у меня нет исходного кода? Существует только файл .fig.
У меня есть .fig файл, который я хочу изменить только 2 значения по оси x.Как изменить некоторые значения оси x в файле .fig в MATLAB?
Как это возможно, если у меня нет исходного кода? Существует только файл .fig.
вытягивать данные с get(gca,...)
, вероятно, является самым простым решением. Тем не менее, есть некоторые другие неясные, но полезные функции MATLAB, о которых стоит упомянуть.
Во-первых, способность MATLAB генерировать M-файлы из цифр, которые могут быть использованы для воссоздания и изменения фигуры программно. Просто нажмите на следующий пункт меню, и вы получите новую функцию в редакторе, например function createfigure(X1, Y1)
, которая точно воссоздает рисунок, но с некоторыми новыми данными X1
и Y1
.
Другая вещь, стоит упомянуть то, что .fig файлы действительно MAT-файлы, содержащие данные, указывающие на фигуру. Например, следующие команды будут загружать данные .fig в struct
в MATLAB, и вы можете получить доступ к данным сюжетные легко:
>> f = load('testjunk.fig','-mat')
f =
hgS_070000: [1x1 struct]
>> axesNum = 1; seriesNum = 1;
>> series = f.hgS_070000.children(axesNum).children(seriesNum)
series =
type: 'graph2d.lineseries'
handle: 172.0051
properties: [1x1 struct]
children: []
special: []
>> X1 = series.properties.XData
ans =
0.0305 0.7441 0.5000 0.4799 0.9047
>> Y1 = series.properties.YData
ans =
0.6099 0.6177 0.8594 0.8055 0.5767
Комбинируйте, чтобы получить работу.
В соответствии с вашими комментариями: у вас есть одна пара х - и у -axes, с несколькими участками в нем, и вы хотите изменить значения.
Откройте файл .fig и сделать:
aux = get(gca,'Children'); %// get all plots within current axes
n = 1; %// or 2 or 3, whichever plot you want to change
x = get(aux(n),'XData'); %// x values of selected plot
Это даст вам х ось значений в переменной x
. Изменить эту переменную по мере необходимости, а затем положить его обратно в сюжет:
set(aux(n),'XData',x)
У меня есть сюжет с тремя фигурами. Я получаю эту ошибку: Ошибка при использовании get Недействительное свойство найдено. Название объекта: текст Название недвижимости: 'XData'. – BlueBit
Я имею в виду не подзаголовок. подрисунков. три полиномиальных функции на графике. – BlueBit
См. Ответ сейчас –
Изменить ярлыки или фактические значения? –
@LuisMendo Фактические значения – BlueBit