2016年11月10日 星期四
2016年9月16日 星期五
自動儲存繪圖結果的圖形(AutoSaveFigure)
% 省略了很多MATLAB的GUI宣告(Source Code不完整)
% 在GUI裡使用了一個axes
posit = get(handles.figure1,'Position');
set(handles.figure1,'Color',[1 1 1]); % 設背景顏色為白色
set(handles.axes1,'Position',[6 2 posit(3)-8 posit(4)-2.5]); % Position中的數值為圖形的調整參數
for i = 3:10
y = magic(i);
plot([1:length(y(:))], y(:))
drawnow;
im = getframe(handles.figure1); % 擷取畫面
imwrite(uint8(im.cdata),[num2str(i) '.png']);
end
% 圖形將存成3.png ~ 10.png
% 在GUI裡使用了一個axes
posit = get(handles.figure1,'Position');
set(handles.figure1,'Color',[1 1 1]); % 設背景顏色為白色
set(handles.axes1,'Position',[6 2 posit(3)-8 posit(4)-2.5]); % Position中的數值為圖形的調整參數
for i = 3:10
y = magic(i);
plot([1:length(y(:))], y(:))
drawnow;
im = getframe(handles.figure1); % 擷取畫面
imwrite(uint8(im.cdata),[num2str(i) '.png']);
end
% 圖形將存成3.png ~ 10.png
此外, 也可以使用script方式產生, 程式碼如下:
h1 = figure('Position', [10 10 450 300], 'Menubar', 'none', 'Name', 'AutoSave_figure');
set(h1, 'Color', 'white') % 設背景顏色為白色
for i = 3:10
y = magic(i)
plot([1:max(y(:))], y(:));
drawnow;
im = getframe(h1); % 擷取畫面
imwrite(uint8(im.cdata),[num2str(i) '.png']);
end
2015年12月26日 星期六
簡易 piano_GUI (使用GUIDE)
程式碼
function varargout = piano(varargin)
gui_Singleton = 1;
gui_State = struct('gui_Name', mfilename, 'gui_Singleton', gui_Singleton, ...
'gui_OpeningFcn', @piano_OpeningFcn, 'gui_OutputFcn', @piano_OutputFcn, ...
'gui_LayoutFcn', [] , 'gui_Callback', []);
if nargin && ischar(varargin{1})
gui_State.gui_Callback = str2func(varargin{1});
end
if nargout
[varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
else
gui_mainfcn(gui_State, varargin{:});
end
function piano_OpeningFcn(hObject, ~, handles, varargin)
global ff Fs t m;
Fs = 11025; t = 0:1/Fs:(1-1/Fs); m = exp(-(0:Fs-1)/3/Fs);
pitch = 60:72;
ff = fix(440 * 2.^((pitch - 69)/12));
handles.output = hObject;
guidata(hObject, handles); % Update handles structure
function varargout = piano_OutputFcn(~, ~, handles)
varargout{1} = handles.output;
function pushbuttonE_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(5) * t).*m; wavplay(y, Fs);
function pushbuttonC_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(1) * t).*m; wavplay(y, Fs);
function pushbuttonD_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(3) * t).*m; wavplay(y, Fs);
function pushbuttonF_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(6) * t).*m; wavplay(y, Fs);
function pushbuttonG_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(8) * t).*m; wavplay(y, Fs);
function pushbuttonA_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(10) * t).*m; wavplay(y, Fs);
function pushbuttonB_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(12) * t).*m; wavplay(y, Fs);
function pushbuttonC__Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(13) * t).*m; wavplay(y, Fs);
function pushbutton1_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(2) * t).*m; wavplay(y, Fs);
function pushbutton2_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(4) * t).*m; wavplay(y, Fs);
function pushbutton3_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(7) * t).*m; wavplay(y, Fs);
function pushbutton4_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(9) * t).*m; wavplay(y, Fs);
function pushbutton5_Callback(~, ~, ~)
global ff t Fs m; y = sin(2 * pi * ff(11) * t).*m; wavplay(y, Fs);
function pushbutton6_Callback(~, ~, ~)
訂閱:
文章 (Atom)











