[問題] 完整的GUI inputdlg 程式

看板MATLAB作者 (只有一個傑克)時間12年前 (2013/07/31 17:39), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
嗯~ 單純只用inputdlg就可以呼叫一個輸入文字的對話視窗 不過要怎麼用判斷式讓整個對話視窗完整沒有錯誤呢? 如果是我自己用的話好像不用管他 因為不會輸入錯東西 但是如果要把程式寫完整 不管做什麼事情程式都運作正常的話想好久不知道該怎麼寫@@ 單只有一行 a = inputdlg('input a number','msg') 的話 會有以下情況 都不輸入只按enter會收到a={''} 按cancel 會收到a={} 輸入數字像是5 會收到a={'5'} 文字就是像是a 會收到a={'a'} 如果我要指定只能輸入整數(不可以空白英文中文符號之類) 要怎麼用if來包裝才不會在command window裡看到紅字呢@@? 我的部份程式是這樣 if (size(a) == [0, 0]) % 按 cancel msgbox('Cancel', 'Messenge', 'warn'); elseif (a{1,1} == '') % 按 OK 但什麼都沒輸入 msgbox('Enter a number.', 'Messenge', 'warn'); elseif (isnumeric(a{1,1})==0) 有輸入但是不是數字 msgbox('Enter a number, not text.', 'Messenge', 'warn'); else 輸入正確要做的事情 (略) end 看起來好像沒問題不過兩個elseif邏輯上有重疊的地方 似乎是可以只用第二個elseif帶過 不過如果我在文字框輸入超過一個字母的文字 像是 XD 就會有紅字錯誤 說是矩陣大小不一樣@@" 而且錯誤是在a{1,1} == ''這個判斷裡 可是他明明就應該是在第三個判斷的啊@@" 有點奇怪.. 如果這四個狀況都要保留的話應該要怎麼做呢? 謝謝@@" -- │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ █ █ █ │ █ █ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ │ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.156.43 ※ 編輯: jack750822 來自: 140.113.156.43 (07/31 17:42)
文章代碼(AID): #1H-DjB5S (MATLAB)
文章代碼(AID): #1H-DjB5S (MATLAB)