2015-09-29 3 views
1

Я использую буфер обмена, чтобы скопировать и вставить мой график Matlab, чтобы преуспеть через actxserver. Однако размеры моей фигуры не копируются, чтобы преуспеть. Как изменить размеры фигуры? Вот мой код ...Копирование графика Matlab в Excel

fig = figure('Position',[100 100 200 300]); 

print(fig,'-dmeta') 

Excel = actxserver('Excel.Application'); 
ExcelWorkbook=invoke(Excel.Workbooks,'Open','C:\...'); 
Sheets = Excel.ActiveWorkBook.Sheets.Item(1); 
Sheets.Range('A1').PasteSpecial; 
ExcelWorkbook.Save; 
Excel.Quit; 
+0

Это очень плохая идея. Excel - это электронная таблица, а не приложение для презентации. Не помещайте изображения в электронную таблицу. –

ответ

2

На рисунке свойство используется для печати (или для копирования в буфер обмена с помощью функции print) не 'Position', но 'Paperposition'.

Из documentation,

Position - Расположение и размер вытяжке площади фигуры, указанный в качестве вектора формы [left bottom width height]. Выделяемая область - это внутренняя область окна, за исключением строки заголовка, строки меню и панели инструментов.

OuterPosition - Местоположение и размер внешних границ рисунка, , указанный в качестве вектора [left bottom width height].

PaperPosition - Рисунок размер и расположение на странице при печати или сохранения, указанные в четыре-элемента вектора вида в [left bottom width height]

Так, добавить что-то вроде

set(fig, 'Paperposition', [1 5 6 12]) %// adjust values as needed 

перед вызовом print(fig, '-dmeta') ,

Смежные вопросы