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

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

          Posted on 2007-06-21 21:30 小強摩羯座 閱讀(4658) 評論(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
          主站蜘蛛池模板: 海口市| 闽侯县| 贵溪市| 资源县| 额济纳旗| 昌江| 东乡族自治县| 九龙城区| 安阳县| 东安县| 华阴市| 乌苏市| 丹东市| 通化县| 麦盖提县| 运城市| 嘉黎县| 祁阳县| 大安市| 普格县| 临武县| 普陀区| 甘谷县| 镇康县| 塔河县| 石屏县| 土默特左旗| 铜川市| 泰宁县| 梓潼县| 格尔木市| 潮安县| 昌吉市| 鸡西市| 衡南县| 梓潼县| 类乌齐县| 哈巴河县| 航空| 清苑县| 乌审旗|