posts - 195, comments - 34, trackbacks - 0, articles - 1

          MATLAB GUI編程中幾個有用的程序段

          Posted on 2007-06-21 21:30 小強摩羯座 閱讀(4653) 評論(2)  編輯  收藏 所屬分類: matalb相關

          1  啟動

          % 獲取當前文件所在路徑

          currPath = fileparts(mfilename('fullpath'));

          % 切換工作路徑到當前位置

          cd(currPath);

          % 判斷所用操作系統

          if computer == 'PCWIN'

              % MATLAB版本號

              v = version;

              if v(1)~='7'        

                  warndlg ('Only run in matlab 7.x(R14.x)');

                  return

          else

                  % 添加當前路徑下的所有子目錄

                  addpath(genpath(pwd));

                  addpath(genpath(currPath));

              end

          end

          2  GUI中使用Axes控件

          % 1.刪除所有畫線及對應圖例

          % 查找Axes控件中的畫線

          sameLines = findobj('type','line');

          % 逐一刪除這些畫線

              for i = 1 :length(sameLines)

                  delete(sameLines(i))

          end

          % 獲取Axes控件中的圖例(由于畫線全部被刪除,因此為空)

          lgStr = get(legend(handles.ResultsAxes), 'String');

          % 重新設置圖例(為空)

              legend(handles.ResultsAxes,lgStr);

          % 2.添加畫線

          % 獲取原來的圖例

          lgStr = get(handles.hLegend, 'String');

          % 設置下一個畫線為添加方式

          set(handles.ResultsAxes, 'Nextplot', 'add');

          % 指定要畫線的Axes

          axes(handles.ResultsAxes);

          % 畫線

          plot(distance_target, '-r')

          % 添加圖例

          handles.hLegend = legend(handles.ResultsAxes, lgStr,'目標距離');

          % 3.刪除某一畫線

          % 所刪除畫線對應的數據為distance_target,獲取它的句柄

          sameLines = findobj('type','line','YData', distance_target);

          % 刪除畫線

              if ~isempty(sameLines)

                  delete(sameLines);

          end

          % 獲取原有的圖例

          lgStr = get(legend(handles.ResultsAxes), 'String');                    

          % 從原有圖例中刪除對應圖例

              legend(handles.ResultsAxes, setdiff(lgStr, {'目標距離'}));

          3  GUI中使用Excel表格(Activex控件Microsoft Office Spreedsheet

          % 獲取現在使用的spreedsheet的句柄

          ActiveSheet = get(handles.activex1,'ActiveSheet');

             % 現在使用的spreedsheet的現在使用工作薄

             ActiveWorkbook = get(handles.activex1,'ActiveWorkbook');            

             % 現在使用的表

          eSheets = handles.activex1.ActiveWorkbook.Sheets;

             % 使用表的第一個子表

             eSheet1 = eSheets.get('Item', 1);

             % 激活該表

             eSheet1.Activate;

          % 獲取當前單元格的句柄

          ActiveCell = get(handles.activex1, 'ActiveCell');

          % 選擇坐標為A1的單元格

          Select(Range(ActiveSheet,'A1'));

          % 獲取當前單元格的句柄

          ActiveCell = get(handles.activex1, 'ActiveCell');

          % 設置當前單元格中的內容

              set(ActiveCell, 'Value', '仿真結果報告');  

          4  Axes控件設置圖片

          % 所有設置的Axes控件

          axes(handles.MyLog);

          % 讀取圖片數據

          Image_tip1=imread('Setting/mylog.jpg');

          % 顯示圖片

          image(Image_tip1);



          Feedback

          # re: MATLAB GUI編程中幾個有用的程序段[未登錄]  回復  更多評論   

          2007-09-06 09:45 by zz
          Nice!

          # re: MATLAB GUI編程中幾個有用的程序段  回復  更多評論   

          2009-08-29 15:23 by ncepuyuyu
          Fine
          主站蜘蛛池模板: 平谷区| 邓州市| 荥阳市| 绿春县| 湟源县| 长白| 垦利县| 庆安县| 孝昌县| 南乐县| 古蔺县| 临沧市| 许昌县| 依兰县| 安国市| 汝城县| 寿光市| 塔城市| 纳雍县| 新干县| 崇明县| 黄陵县| 那曲县| 河东区| 洞口县| 余庆县| 务川| 衢州市| 双桥区| 望谟县| 晋宁县| 海晏县| 贵南县| 牟定县| 衡阳县| 三台县| 岑巩县| 马关县| 新建县| 奉贤区| 同德县|