Π”ΠΈΠΏΠ»ΠΎΠΌΡ‹, курсовыС, Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚Ρ‹, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅...
Брочная ΠΏΠΎΠΌΠΎΡ‰ΡŒ Π² ΡƒΡ‡Ρ‘Π±Π΅

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡ΠΊΠ°ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ PushButton ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ свойств Property Inspector ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° свойств, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π°Π·Π²Π°Π½ΠΈΠΉ свойств ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗанСситС Π² ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ Tag Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ btnPlot, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΡ‹ΡˆΡŒΡŽ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅ справа ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΡ свойства, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅. btnPlot Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ графичСского интСрфСйса ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠšΠ°Ρ„Π΅Π΄Ρ€Π°: ИВ

Π‘ΠžΠ—Π”ΠΠΠ˜Π• Π“Π ΠΠ€Π˜Π§Π•Π‘ΠšΠžΠ“Πž Π˜ΠΠ’Π•Π Π€Π•Π™Π‘Π ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π― Π’ MATLAB

Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π±ΡƒΡ€Π³

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ с GUI

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ MATLAB ΡΠ²Π»ΡΡŽΡ‚ΡΡ графичСскими ΠΎΠΊΠ½Π°ΠΌΠΈ, содСрТащими элСмСнты управлСния (ΠΊΠ½ΠΎΠΏΠΊΠΈ, списки, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, Ρ„Π»Π°Π³ΠΈ, полосы скроллинга, области Π²Π²ΠΎΠ΄Π°, мСню), Π° Ρ‚Π°ΠΊΠΆΠ΅ оси ΠΈ Ρ‚СкстовыС области для Π²Ρ‹Π²ΠΎΠ΄Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ² Ρ€Π°Π±ΠΎΡ‚Ρ‹. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ основныС этапы — располоТСниС Π½ΡƒΠΆΠ½Ρ‹Ρ… элСмСнтов интСрфСйса Π² ΠΏΡ€Π΅Π΄Π΅Π»Π°Ρ… графичСского ΠΎΠΊΠ½Π° ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ дСйствий (ΠΊΠΎΠΌΠ°Π½Π΄ MATLAB), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ. ΠŸΡ€ΠΎΡ†Π΅ΡΡ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π½Π°Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ допускаСт постСпСнноС Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнтов Π² Π³Ρ€Π°Ρ„ичСскоС ΠΎΠΊΠ½ΠΎ, запуск ΠΈ Ρ‚СстированиС прилоТСния ΠΈ Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования. ΠšΠΎΠ½Π΅Ρ‡Π½Ρ‹ΠΌ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠΌ являСтся ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° с Π³Ρ€Π°Ρ„ичСским интСрфСйсом ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ (GUI), содСрТащаяся Π² Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… Ρ„Π°ΠΉΠ»Π°Ρ…, запуск ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ производится ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ Π΅Π΅ ΠΈΠΌΠ΅Π½ΠΈ Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС MATLAB ΠΈΠ»ΠΈ Π² Π΄Ρ€ΡƒΠ³ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Рассмотрим основныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² MATLAB 6.x.

Π‘Ρ€Π΅Π΄Π° GUIDE

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΡΡ€Π΅Π΄Ρƒ GUIDE, Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΠ² guide Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС. Π’ ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Blank GUI ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ OK. ΠŸΠΎΡΠ²ΠΈΡ‚ΡΡ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΎΠΊΠ½Π° прилоТСния (рис. 1.), Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ untitled. fig ΠΎΠ·Π½Π°Ρ‡Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π½Π΅ΠΌ ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ Ρ„Π°ΠΉΠ».

Рис. 1 Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ прилоТСния

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ прилоТСния содСрТит:

Β· строку мСню;

Β· панСль инструмСнтов управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ;

Β· Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΡƒ ΠΎΠΊΠ½Π° прилоТСния с Π½Π°Π½Π΅ΡΠ΅Π½Π½ΠΎΠΉ сСткой;

Β· Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½ΡƒΡŽ ΠΈ Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½ΡƒΡŽ Π»ΠΈΠ½Π΅ΠΉΠΊΠΈ;

Β· панСль инструмСнтов для добавлСния элСмСнтов интСрфСйса Π½Π° ΠΎΠΊΠ½ΠΎ прилоТСния.

Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ прилоТСния MATLAB 6. x ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Π΅ элСмСнты интСрфСйса (рис. 2). ВрСбуСтся Π½Π°ΠΆΠ°Ρ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов ΠΈ ΠΏΠΎΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ Π² Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ мСсто Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠ½Π° прилоТСния. Π”Ρ€ΡƒΠ³ΠΎΠΉ способ состоит Π² Π·Π°Π΄Π°Π½ΠΈΠΈ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΎΠΉ области ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠΈ ΠΎΠΊΠ½Π° с ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π Π°Π·ΠΌΠ΅Ρ€ ΠΈ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΠ·ΠΌΠ΅Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΡ‹ΡˆΠΈ. ΠŸΠ΅Ρ€Π΅Π΄ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ Ρ€Π°Π·ΠΌΠ΅Ρ€Π° слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π΅ΠΆΠΈΠΌ выдСлСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ, Ρ‰Π΅Π»ΠΊΠ½ΡƒΠ² ΠΏΠΎ Π½Π΅ΠΌΡƒ клавишСй ΠΌΡ‹ΡˆΠΈ.

Рис. 2. ПанСль инструмСнтов для добавлСния элСмСнтов интСрфСйса ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ находится Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ рСдактирования. Π›ΡŽΠ±ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ΄Π°Π»ΠΈΡ‚ΡŒ ΠΈΠ· ΠΎΠΊΠ½Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ, ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π΅Π³ΠΎ Π²Ρ‹Π΄Π΅Π»ΠΈΠ². Запуск прилоТСния производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Run Π»ΠΈΠ±ΠΎ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню Tools. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ GUIDE, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сообщаСт ΠΎ Π½Π΅ΠΎΠ±Ρ…одимости ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. НаТмитС Yes ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΠ΅ΠΌ fig.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ запускаСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΠΎΠΌ ΠΎΠΊΠ½Π΅ с Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ Untitled. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠΈΠΌΠ°Ρ‚ΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ Ρ„Π»Π°Π³ΠΈ, ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ, ΠΎΠ±Ρ€Π°Ρ‰Π°Ρ‚ΡŒΡΡ ΠΊ ΡΠΏΠΈΡΠΊΠ°ΠΌ. ΠŸΡ€ΠΈ этом Π½ΠΈΡ‡Π΅Π³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠ³ΠΎ ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚.

НСдостаточно Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ элСмСнты интСрфСйса Π² ΠΎΠΊΠ½Π΅ прилоТСния, слСдуСт ΠΏΠΎΠ·Π°Π±ΠΎΡ‚ΠΈΡ‚ΡŒΡΡ ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ элСмСнт выполнял Π½ΡƒΠΆΠ½Ρ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НапримСр, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ производятся вычислСния ΠΈ ΡΡ‚роятся Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π½Ρ‹Ρ… Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΉ, полоса скроллинга измСняСт Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρƒ Π»ΠΈΠ½ΠΈΠΈ, Π² ΠΎΠ±Π»Π°ΡΡ‚ΠΈ Π²Π²ΠΎΠ΄Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹, ΡƒΠΏΡ€Π°Π²Π»ΡΡŽΡ‰ΠΈΠ΅ Ρ…ΠΎΠ΄ΠΎΠΌ вычислСний.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ событий

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² MATLAB 6. x Ρ…ранится Π² Π΄Π²ΡƒΡ… Ρ„Π°ΠΉΠ»Π°Ρ… с Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡΠΌΠΈ fig ΠΈ m, ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· Π½ΠΈΡ… содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹Ρ… Π² ΠΎΠΊΠ½Π΅ прилоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°Ρ…, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ являСтся М-Ρ„Π°ΠΉΠ»ΠΎΠΌ с ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ ΠΈ ΠΏΠΎΠ΄Ρ„ункциями. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ элСмСнта интСрфСйса ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° прилоТСния ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Π°Π²Ρ‚оматичСскому созданию ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. Π”Π°Π½Π½ΡƒΡŽ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ слСдуСт Π½Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ содСрТимым — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ события, Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‰Π΅Π³ΠΎ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Ρƒ интСрфСйса.

Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΊΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит оси ΠΈ Π΄Π²Π΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹Π΅ для построСния Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΈ ΠΎΡ‡ΠΈΡΡ‚ΠΊΠΈ осСй.

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² ΡΡ€Π΅Π΄Ρƒ создания прилоТСния ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ guide.

РасполоТитС Π½Π° Ρ„ΠΎΡ€ΠΌΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΈ ΠΎΡΠΈ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 3. На ΠΊΠ½ΠΎΠΏΠΊΠ΅ автоматичСски размСщаСтся надпись PushButton. Кнопка являСтся элСмСнтом интСрфСйса, Π΅ΠΉ ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π΄Π°Ρ‚ΡŒ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ ΡƒΠ½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π»ΠΎ Π±Ρ‹ Π΅Π΅ ΡΡ€Π΅Π΄ΠΈ всСх ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΎΠΊΠ½Π° прилоТСния.

Рис. 3. РасполоТСниС ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΎΡΠ΅ΠΉ Π² ΠΎΠΊΠ½Π΅ прилоТСния

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ PushButton ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ свойств Property Inspector ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° свойств, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ содСрТится Ρ‚Π°Π±Π»ΠΈΡ†Π° Π½Π°Π·Π²Π°Π½ΠΈΠΉ свойств ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΠΈΡ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ. ЗанСситС Π² ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ Tag Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ btnPlot, Ρ‰Π΅Π»ΠΊΠ½ΠΈΡ‚Π΅ ΠΌΡ‹ΡˆΡŒΡŽ ΠΏΠΎ ΡΡ‚Ρ€ΠΎΠΊΠ΅ справа ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΡ свойства, Π½Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅. btnPlot Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ являСтся ΠΈΠΌΠ΅Π½Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ PushButton. Π£Π΄ΠΎΠ±Π½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π°, Ρ‡Π°ΡΡ‚ΡŒ ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСт Ρ‚ΠΈΠΏ элСмСнта управлСния (btn соотвСтствуСт button — ΠΊΠ½ΠΎΠΏΠΊΠ΅). Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π΄Π°ΠΉΡ‚Π΅ осям имя axMain. Π’Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ Π² ΠΌΠ΅Π½ΡŽ File Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° прилоТСния ΠΏΡƒΠ½ΠΊΡ‚ Save as, создайтС ΠΏΠ°ΠΏΠΊΡƒ MyFirstGui ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ„Π°ΠΉΠ»Π΅ mygui.fig. ΠŸΡ€ΠΈ этом открываСтся Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ М-Ρ„Π°ΠΉΠ»ΠΎΠ², содСрТащий Ρ„Π°ΠΉΠ» mygui.m. Π”Π°Π½Π½Ρ‹ΠΉ Ρ„Π°ΠΉΠ» ΠΈΠΌΠ΅Π΅Ρ‚ структуру, схСматично ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»Π΅Π½Π½ΡƒΡŽ Π² Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 1.

Листинг 1. Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π° М-Ρ„Π°ΠΉΠ»Π° прилоТСния с Π³Ρ€Π°Ρ„ичСским интСрфСйсом

function varargout = mygui (varargin)

% ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ прилоТСния

% ABOUT CALLBACKS :

% ΠšΡ€Π°Ρ‚ΠΊΠ°Ρ информация ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ событий

function btnPlot_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ btnPlot

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui содСрТит ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ PushButton. Когда ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ Π½Π° Push Button Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, Ρ‚ΠΎ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ событиС Callback Π΄Π°Π½Π½ΠΎΠ³ΠΎ элСмСнта управлСния. ВызываСтся подфункция btnPlot_Callback. БСйчас ΠΎΠ½Π° Π½Π΅ ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ². Имя ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π·ΠΎΠ²Π°Π½ΠΎ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡΠΎΠ±Ρ‹Ρ‚ия. ΠžΡ‡Π΅Π½ΡŒ Π²Π°ΠΆΠ½ΠΎ Π·Π°Π΄Π°Π²Π°Ρ‚ΡŒ ΠΈΠΌΠ΅Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌ Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Tag сразу послС ΠΈΡ… Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½Π° ΠΎΠΊΠ½ΠΎ прилоТСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΈΠ½Π°Ρ‡Π΅ гСнСрируСмая подфункция ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ имя, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ сохранится ΠΏΡ€ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ значСния Tag ΠΈ ΠΏΠΎΠ²Π»Π΅Ρ‡Π΅Ρ‚ ошибки ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ прилоТСния. Π—Π°Π²Π΅Ρ€ΡˆΠ°ΡŽΡ‰ΠΈΠΉ этап состоит Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ дСйствий, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ PushButton. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события наТатия Π½Π° PushButton Π² ΡΠΎΠΎΡ‚вСтствии с Π»ΠΈΡΡ‚ΠΈΠ½Π³ΠΎΠΌ 2.

Листинг 2. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ btnPlot

function btnPlot_Callback (hObject, eventdata, handles)

x=[-2:0.2:2];

y=exp (-x.^2);

plot (x, y)

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ» mygui. m Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ М-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ Π·Π°ΠΏΡƒΡΡ‚ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡƒ Run. НаТатиС Π½Π° PushButton Π² Π·Π°ΠΏΡƒΡ‰Π΅Π½Π½ΠΎΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π½Π° ΠΎΡΡΡ…. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΊΡ€Π΅ΡΡ‚ΠΈΠΊΠΎΠΌ Π² ΠΏΡ€Π°Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ ΠΈ ΠΏΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ mygui Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 4, Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΉ ΠΈΠΌΡ btnΠ‘lear Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств. Быстрый доступ ΠΊ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ производится ΠΈΠ· ΠΏΡƒΠ½ΠΊΡ‚Π° Inspect Properties Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π΅. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ, для Ρ‡Π΅Π³ΠΎ слСдуСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚ View Callbacks->Callback Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню. Π’Ρ‹Π±ΠΎΡ€ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π° Π΄Π΅Π»Π°Π΅Ρ‚ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΌ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ М-Ρ„Π°ΠΉΠ»ΠΎΠ². РазмСститС СдинствСнный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ очистки осСй cla Π² ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (листинг 3).

Листинг 3. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события ΠΊΠ½ΠΎΠΏΠΊΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ btnClear

function btnClear_Callback (hObject, eventdata, handles)

cla

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π° ΠΏΡ€Π°Π²Π°Ρ слуТит для очистки осСй.

Рис. 4. Окно прилоТСния с Π΄Π²ΡƒΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ

ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ интСрфСйса

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ свойствами ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° прилоТСния сопряТСна с ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ½ΠΈ ΠΏΠΎΠ»ΡƒΡ‡Π°ΡŽΡ‚ ΠΏΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ ΠΏΡ€ΠΈ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ ΠΈΡ… Π½Π° Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΊΠ΅ ΠΎΠΊΠ½Π°. НСкоторыС ΠΈΠ· ΡΠ²ΠΎΠΉΡΡ‚Π², Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ надпись Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΈΠ»ΠΈ Π΅Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ создании ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ рСдактирования. Π”Ρ€ΡƒΠ³ΠΈΠ΅ свойства ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.

Установка свойств ΠΏΡ€ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ

ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ mygui, ΠΎΠΊΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 4. ΠžΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ. Кнопки ΡΠ²Π»ΡΡŽΡ‚ΡΡ графичСскими ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°ΠΌΠΈ с ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌΠΈ свойствами, срСди ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… имССтся свойство, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅Π΅ Π·Π° Π½Π°Π΄ΠΏΠΈΡΡŒ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅. Π‘Π΄Π΅Π»Π°ΠΉΡ‚Π΅ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ прилоТСния mygui Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΈ Π²Ρ‹Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ свойств Property Inspector. УстановитС свойство String Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ (см Ρ€ΠΈΡ. 5.)

Рис. 5 Окно свойств Property Inspector

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства string соотвСтствуСт надписи Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅, a Tag — ΠΈΠΌΠ΅Π½ΠΈ ΠΈΠ»ΠΈ Ρ‚Π΅Π³Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ИмСна ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡŽΡ‚ΡΡ для измСнСния ΠΈΡ… ΡΠ²ΠΎΠΉΡΡ‚Π² Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π±Π»ΠΎΠΊΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ событий ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов интСрфСйса. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Ρ‚Π΅ΠΏΠ΅Ρ€ΡŒ ΠΊ ΡΠ²ΠΎΠΉΡΡ‚Π²Π°ΠΌ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΈ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚Π΅ String Π² ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ.

Доступ ΠΊ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Ρƒ свойств Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° производится Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов управлСния ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΌΠ΅Π½ΡŽ View Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π»ΠΈΠ±ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° Property Inspector Π²ΡΠΏΠ»Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎ мСню.

Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства string сразу отобраТаСтся Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅ прилоТСния, находящСгося Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ рСдактирования. ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ свойств

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ свойств ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ прямо Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. ΠŸΡƒΡΡ‚ΡŒ ΠΏΡ€ΠΈ запускС доступной являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ° ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ выводится Π³Ρ€Π°Ρ„ΠΈΠΊ ΠΈ ΠΎΠ½Π° становится нСдоступной, Π·Π°Ρ‚ΠΎ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ для очистки осСй, ΠΈ Π½Π°ΠΎΠ±ΠΎΡ€ΠΎΡ‚.

РСшСниС поставлСнной Π·Π°Π΄Π°Ρ‡ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ привлСчСния свойства Enable. Бвойство Enable ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ Π½Π΅ΠΌΡƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ on Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ доступ, a off, соотвСтствСнно, Π·Π°ΠΏΡ€Π΅Ρ‰Π°Π΅Ρ‚. Установка Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π² ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ΅ производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ set.

Ѐункция set вызываСтся с Ρ‚рСмя Π²Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ — ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ свойства ΠΈ Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ, послСдниС Π΄Π²Π° Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° Π·Π°ΠΊΠ»ΡŽΡ‡Π°ΡŽΡ‚ΡΡ Π² Π°ΠΏΠΎΡΡ‚Ρ€ΠΎΡ„Ρ‹. Бвойства ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ Π² Π±Π»ΠΎΠΊΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ΠΎΠ² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Π‘allback Π΄Ρ€ΡƒΠ³ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π‘Π»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎ, Π΄ΠΎΠ»ΠΆΠ½Π° ΠΈΠΌΠ΅Ρ‚ΡŒΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŽ Π½Π° Π»ΡŽΠ±ΠΎΠΉ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚. АргумСнты hObject ΠΈ handles ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‚ события элСмСнтов управлСния, содСрТат Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ. Π’ hObject хранится ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Ρ‚ΠΎΡ‚ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, событиС ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ обрабатываСтся Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚, a handles являСтся структурой ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΉ. Поля структуры ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡŽΡ‚ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΡΠΌΠΈ свойств Tag ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΡ… элСмСнтов интСрфСйса. НапримСр, handles. btnPlot являСтся ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»Π΅ΠΌ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ btnPlot. Доступ ΠΊ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ Π² Π½Π°Ρ‡Π°Π»Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, ΠΏΠΎΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π½Π°ΠΆΠΌΠ΅Ρ‚ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ УстановитС Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств для ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ свойство Enable Π² off, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ со ΡΡ‚Ρ€Π΅Π»ΠΊΠΎΠΉ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ свойства. ΠžΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ измСнСния значСния Enable ΠΊΠ½ΠΎΠΏΠΎΠΊ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚ΡŒ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. Для Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΈ Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½ΠΈΡ доступа ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌ Π½ΡƒΠΆΠ½ΠΎ внСсти дополнСния Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ ΠΈΡ… ΡΠΎΠ±Ρ‹Ρ‚ΠΈΠΉ Callback.

Π’ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° Π²Ρ‹Π·ΠΎΠ²ΠΎΠ²:

Β· установку свойства Enable ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ on (послС Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° слСдуСт Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ);

Β· установку свойства Enable ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ off (послС Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ° слСдуСт Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ доступ ΠΊ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ);

АналогичныС измСнСния ΠΏΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈΡ‚Π΅ Π² ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅ события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ:

Β· установку свойства Enable ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ on (послС очистки осСй слСдуСт Ρ€Π°Π·Ρ€Π΅ΡˆΠΈΡ‚ΡŒ доступ ΠΊ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ);

Β· установку свойства Enable ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ off (послС очистки осСй слСдуСт Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ доступ ΠΊ ΠΊΠ½ΠΎΠΏΠΊΠ΅);

ΠŸΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ btnPlot_Callback ΠΈ btnClear_Callback Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Π»ΠΈΡΡ‚ΠΈΠ½Π³Π΅ 4.

Листинг 4. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий Callback ΠΊΠ½ΠΎΠΏΠΎΠΊ btnPlot ΠΈ btnClear

function btnPlot_Callback (hObject, eventdata, handles)

% ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

x=[-2:0.2:2];

y=exp (-x.^2);

plot (x, y)

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ нСдоступной послС Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

set (hObject, 'Enable', 'off')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ доступной

set (handles.btnClear, 'Enable', 'on')

function btnClear_Callback (hObject, eventdata, handles)

cla % очистка осСй

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ нСдоступной послС очистки осСй

set (hObject, 'Enable', 'off')

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ доступной

set (handles.btnPlot, 'Enable', 'on')

Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ измСнСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ М-Ρ„Π°ΠΉΠ»ΠΎΠ². ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ всСгда доступной являСтся Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Π° ΠΈΠ· ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ являСтся Ρ…ΠΎΡ€ΠΎΡˆΠ΅ΠΉ подсказкой для ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… дСйствиях. Π—Π°ΠΊΡ€ΠΎΠΉΡ‚Π΅ ΠΎΠΊΠ½ΠΎ прилоТСния ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ.

Π Π°Π±ΠΎΡ‚Π° Π½Π°Π΄ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ

Запуск прилоТСния

Запуск прилоТСния осущСствляСтся Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Для запуска прилоТСния достаточно Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ Π·Π°Π΄Π°Ρ‚ΡŒ Π΅Π³ΠΎ имя Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ строкС

>>mygui

ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ прилоТСния, ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠ΅ ΠΊ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌ интСрфСйса ΠΎΠΊΠ½Π° ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ дСйствиям.

ΠšΠ°Ρ‚Π°Π»ΠΎΠ³ с ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒΡΡ Π² ΠΏΡƒΡ‚ях поиска MatLab ΠΈΠ»ΠΈ ΡΠ²Π»ΡΡ‚ΡŒΡΡ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΌ.

ΠžΡ„ΠΎΡ€ΠΌΠ»Π΅Π½ΠΈΠ΅ интСрфСйса

Часто трСбуСтся, Ρ‡Ρ‚ΠΎΠ±Ρ‹ нСбольшоС ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΌΡ‹ΡˆΠΈ Π²Ρ‹Π·Ρ‹Π²Π°Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ полоТСния ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° Π½Π° Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ фиксированный шаг. Π‘Π΅Ρ‚ΠΊΠ° Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ позволяСт ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊΠΎΠ΅ дискрСтноС Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚Π° Grid and Rulers мСню Tools ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° Grid and Rulers, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Ρ€ΠΈΡ. 5.

Рис. 5. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Grid and Rulers

Π€Π»Π°Π³ΠΈ Show rulers ΠΈ Show grid ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‚ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π»ΠΈΠ½Π΅Π΅ΠΊ ΠΈ ΡΠ΅Ρ‚ΠΊΠΈ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π° Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список Grid Size позволяСт Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ€ ячССк сСтки. Минимально допустимый Ρ€Π°Π·ΠΌΠ΅Ρ€Π΄Π΅ΡΡΡ‚ΡŒ пиксСлов — позволяСт достаточно Ρ‚ΠΎΡ‡Π½ΠΎ Ρ€Π°ΡΠΏΠΎΠ»Π°Π³Π°Ρ‚ΡŒ элСмСнты управлСния Π² ΠΎΠΊΠ½Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° пСрСмСщСния ΠΊ Π»ΠΈΠ½ΠΈΡΠΌ сСтки происходит ΠΏΡ€ΠΈ установлСнном Ρ„Π»Π°Π³Π΅ Snap to grid. ΠŸΡ€ΠΈΠ²ΡΠ·ΠΊΠ° Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ Ρ€Π°Π·ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚ΡŒ Π΅Π³ΠΎ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΏΡ€ΠΈ условии прохоТдСния Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΏΠΎ Π»ΠΈΠ½ΠΈΡΠΌ сСтки. Π’Ρ‹Π±ΠΎΡ€ ΠΌΠ΅Π»ΠΊΠΎΠ³ΠΎ шага сСтки Π² ΡΠΎΡ‡Π΅Ρ‚Π°Π½ΠΈΠΈ с ΠΏΡ€ΠΈΠ²ΡΠ·ΠΊΠΎΠΉ прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ быстро ΠΎΡ„ΠΎΡ€ΠΌΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. Плавно ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π²Ρ‹Π΄Π΅Π»Π΅Π½Π½ΠΎΠ³ΠΎ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ клавиш со ΡΡ‚Ρ€Π΅Π»ΠΊΠ°ΠΌΠΈ. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠ΅ ΡƒΠ΄Π΅Ρ€ΠΆΠ°Π½ΠΈΠ΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΡŽ с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ привязки ΠΊ ΡΠ΅Ρ‚ΠΊΠ΅.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ элСмСнтов интСрфСйса

Π€Π»Π°Π³ΠΈ ΠΈ Ρ€Π°ΠΌΠΊΠΈ

Π€Π»Π°Π³ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ произвСсти ΠΎΠ΄Π½Ρƒ ΠΈΠ»ΠΈ нСсколько установок, ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‰ΠΈΡ… Ρ…ΠΎΠ΄ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния. ΠŸΡ€ΠΎΠ΄ΠΎΠ»ΠΆΠΈΡ‚Π΅ Ρ€Π°Π±ΠΎΡ‚Ρƒ Π½Π°Π΄ mygui, прСдоставив ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π½Π°Π½ΠΎΡΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊ. Окно прилоТСния Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ Π΄Π²Π° Ρ„Π»Π°Π³Π° с Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ сСтка ΠΏΠΎ Ρ… ΠΈ ΡΠ΅Ρ‚ΠΊΠ° ΠΏΠΎ Ρƒ. Если ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, Ρ‚ΠΎ Π½Π° ΠΎΡΠΈ наносится сСтка ΠΏΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π½Ρ‹ΠΌ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌ. НаТатиС Π½Π° ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΈΡΡ‡Π΅Π·Π½ΠΎΠ²Π΅Π½ΠΈΡŽ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ, Π½ΠΎ ΠΈ ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ сСтки.

ΠžΠ±Ρ‹Ρ‡Π½ΠΎ нСсколько элСмСнтов управлСния со ΡΡ…ΠΎΠΆΠΈΠΌ Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΈ ΠΏΠΎΠΌΠ΅Ρ‰Π°ΡŽΡ‚ся Π²Π½ΡƒΡ‚Ρ€ΠΈ Ρ€Π°ΠΌΠΊΠΈ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Ρ€Π°Π·ΠΌΠ΅Ρ€Ρ‹ осСй, освободив справа мСсто для Ρ€Π°ΠΌΠΊΠΈ. НанСситС Ρ€Π°ΠΌΠΊΡƒ Π½Π° ΠΎΠΊΠ½ΠΎ прилоТСния ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ. Π’ Ρ€Π°ΠΌΠΊΡƒ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΄Π²Π° Ρ„Π»Π°Π³Π°. РазмСститС ΠΏΠΎΡΡΠ½ΡΡŽΡ‰ΠΈΠ΅ подписи рядом с Ρ„Π»Π°Π³Π°ΠΌΠΈ ΠΈ Π΄Π°ΠΉΡ‚Π΅ ΠΈΠΌ ΠΈΠΌΠ΅Π½Π°. Π—Π°Π΄Π°ΠΉΡ‚Π΅ свойству Tag Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Ρ„Π»Π°Π³Π° Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ chbxGridx, Π° ΡΠ²ΠΎΠΉΡΡ‚Π²Ρƒ string, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰Π΅ΠΌΡƒ Π·Π° ΠΏΠΎΠ΄ΠΏΠΈΡΡŒ Ρ„Π»Π°Π³Π°, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π‘Π΅Ρ‚ΠΊΠ° ΠΏΠΎ Ρ….

Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ свойства Π½ΠΈΠΆΠ½Π΅Π³ΠΎ Ρ„Π»Π°Π³Π°, установитС свойство Tag Π² chbxGridY, ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎ string Π² ΡΠ΅Ρ‚ΠΊΠ° ΠΏΠΎ Ρƒ. Если тСкст Π½Π΅ ΠΏΠΎΠΌΠ΅Ρ‰Π°Π΅Ρ‚ся рядом с Ρ„Π»Π°Π³ΠΎΠΌ, ΡƒΠ²Π΅Π»ΠΈΡ‡ΡŒΡ‚Π΅ ΡˆΠΈΡ€ΠΈΠ½Ρƒ области Ρ„Π»Π°Π³Π° ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΡ‹ΡˆΠΈ, удСрТивая Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ Π»Π΅Π²ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ. Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ для автоматичСского создания Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ М-Ρ„Π°ΠΉΠ»ΠΎΠ² Π·Π°Π³ΠΎΡ‚ΠΎΠ²ΠΎΠΊ для ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½Ρ‹Ρ… ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ².

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΡΠ΄Π΅Π»Π°Ρ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ происходило ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΉ сСтки Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²Π»Π΅Π½Π½Ρ‹Ρ… Ρ„Π»Π°Π³ΠΎΠ², Π° Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΠ»ΠΎ ΠΊ ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ сСтки. Π‘Π»ΠΎΠΊ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ слСдуСт Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ состояния Ρ„Π»Π°Π³ΠΎΠ². Бвойство Ρ„Π»Π°Π³Π° value ΠΏΡ€ΠΈΠ½ΠΈΠΌΠ°Π΅Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ логичСской Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹ ΠΏΡ€ΠΈ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ„Π»Π°Π³Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, ΠΈ, соотвСтствСнно, Ρ€Π°Π²Π½ΠΎ Π½ΡƒΠ»ΡŽ, Ссли Ρ„Π»Π°Π³ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½. Π£ΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ Π½Π° Ρ„Π»Π°Π³ΠΈ содСрТатся Π² ΠΏΠΎΠ»ΡΡ… chbxGridX ΠΈ chbxGridY структуры handles. БостояниС Ρ„Π»Π°Π³ΠΎΠ² опрСдСляСт Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойств XGrid ΠΈ YGrid осСй.

ΠŸΡ€ΠΎΠΈΠ·Π²Π΅Π΄ΠΈΡ‚Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹Π΅ измСнСния Π² ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ с ΠΈΠΌΠ΅Π½Π΅ΠΌ btnPlot (листинг 5).

Листинг 5. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события ΠΊΠ½ΠΎΠΏΠΊΠΈ btnPlot с ΡƒΡ‡Π΅Ρ‚ΠΎΠΌ состояния Ρ„Π»Π°Π³ΠΎΠ²

function btnPlot_Callback (hObject, eventdata, handles)

% ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

x=[-2:0.2:2];

y=exp (-x.^2);

plot (x, y)

%ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π»Π°Π³Π° сСтка ΠΏΠΎ Ρ…

if get (handles.chbxGridX, 'Value')

% Π€Π»Π°Π³ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'XGrid', 'on')

else

% Π€Π»Π°Π³ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'XGrid', 'off')

end

% ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π»Π°Π³Π° сСтка ΠΏΠΎ Ρ…

if get (handles.chbxGridY, 'Value')

% Π€Π»Π°Π³ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'YGrid', 'on')

else

% Π€Π»Π°Π³ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'YGrid', 'off')

end

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ нСдоступной послС Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

set (hObject, 'Enable', 'off')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ доступной

set (handles.btnClear, 'Enable', 'on')

Π€Π»Π°Π³ΠΈ ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡŽΡ‚ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ»ΠΈ сразу Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… ΠΎΠΏΡ†ΠΈΠΉ. ΠžΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹ΠΉ Π²Ρ‹Π±ΠΎΡ€ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½ΠΎΠΉ ΠΎΠΏΡ†ΠΈΠΈ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ.

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ

ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΠΈ ΠΎΠ±Ρ‹Ρ‡Π½ΠΎ Π³Ρ€ΡƒΠΏΠΏΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΠΎ ΠΈΡ… ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ, ΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π±Ρ€Π°Ρ‚ΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΎΠ΄Π½Ρƒ ΠΎΠΏΡ†ΠΈΡŽ. ВсСгда установлСн СдинствСнный ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈΠ· Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ Π΄ΠΎΠ»ΠΆΠ½Π° Π²Π»ΠΈΡΡ‚ΡŒ Π½Π° ΡΠΎΡΡ‚ояниС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ всСй Π³Ρ€ΡƒΠΏΠΏΡ‹. ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ интСрфСйс прилоТСния mygui, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΈΡ€Π°Ρ‚ΡŒ Ρ‚ΠΈΠΏ ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π° (ΠΊΡ€ΡƒΠΆΠΎΠΊ, ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚ ΠΈΠ»ΠΈ отсутствиС ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Π°).

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ прилоТСния Π½ΠΎΠ²ΡƒΡŽ Ρ€Π°ΠΌΠΊΡƒ ΠΈ Π½Π°Π½Π΅ΡΠΈΡ‚Π΅ Π½Π° Π½Π΅Π΅ Ρ‚Ρ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ, установитС свойствам Tag значСния rbMarkcirc, rbMarkSq, rbMarkNone, a String — ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ, ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹, Π±Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² соотвСтствСнно (рис. 6).

БостояниС ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ опрСдСляСтся Π΅Π³ΠΎ свойством value: Ссли value Ρ€Π°Π²Π½ΠΎ Π΅Π΄ΠΈΠ½ΠΈΡ†Π΅, Ρ‚ΠΎ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, ноль — Π½Π΅Ρ‚. Π—Π°Π΄Π°ΠΉΡ‚Π΅ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 1 свойству value ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Ρ с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ Π±Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ², ΠΎΠ½ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΡ€ΠΈ запускС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ свойства Value Π² Π²Π΅Ρ€ΡΠΈΠΈ MatLab 6. x ΡƒΡΡ‚анавливаСтся ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Π΅Π³ΠΎ свойствам. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ с Value. ΠŸΠΎΡΠ²Π»ΡΠ΅Ρ‚ΡΡ ΠΎΠΊΠ½ΠΎ Value, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€ΠΈΡ. 7.

Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΌΡ‹ΡˆΠΈ строку со Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ 0.0 ΠΈ ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования значСния Π΄Π²ΠΎΠΉΠ½Ρ‹ΠΌ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. Π˜Π·ΠΌΠ΅Π½ΠΈΡ‚Π΅ 0.0 Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠžΠš. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Value измСнилось Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ, ΠΈ Π²ΠΊΠ»ΡŽΡ‡ΠΈΠ»ΡΡ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π±Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π½Π° ΠΎΠΊΠ½Π΅ прилоТСния Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ. Π’Ρ‹ΡˆΠ΅ΠΎΠΏΠΈΡΠ°Π½Π½Ρ‹ΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‚ΡΡ значСния Value Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств. Π”Π°Π»ΡŒΠ½Π΅ΠΉΡˆΠ΅Π΅ ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ Value ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΎΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΡ‚ΡŒΡΡ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния mygui.

Листинг 6. Π’Ρ‹Π±ΠΎΡ€ Ρ‚ΠΈΠΏΠ° ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ²

function btnPlot_Callback (hObject, eventdata, handles)

% ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

x=[-2:0.2:2];

y=exp (-x.^2);

handles.line = plot (x, y)

guidata (gcbo, handles)

function rbMarkcirc_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ

set (handles.line, 'Marker', 'o')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkSq, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkNone, 'Value', 0)

function rbMarkSq_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹

set (handles.line,'Marker','s')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkcirc, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkNone, 'Value', 0)

function rbMarkNone_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΎΡ‚Ρ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π±Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ²

set (handles.line,'Marker','none')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkcirc, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkSq, 'Value', 0)

Рис. 6 Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π³Ρ€ΡƒΠΏΠΏΡ‹ ΠΏΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»Π΅ΠΉ Рис. 7 Окно Value для установки значСния

Бписки

ΠœΠΎΠ΄Π΅Ρ€Π½ΠΈΠ·ΠΈΡ€ΡƒΠΉΡ‚Π΅ интСрфСйс прилоТСния mygui, ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ· Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка (синий, красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ). ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°Π½Π΅Π»ΠΈ управлСния Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список (рис. 8). Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств установитС свойство Tag Π² Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ 'pmColor'.

Рис. 8. Π”ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка Π­Π»Π΅ΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ вводятся Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ со ΡΠ²ΠΎΠΉΡΡ‚Π²ΠΎΠΌ String Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка, появляСтся ΠΎΠΊΠ½ΠΎ String. НабСритС Π² Π½Π΅ΠΌ строки «ΡΠΈΠ½ΠΈΠΉ», «ΠΊΡ€Π°ΡΠ½Ρ‹ΠΉ», «Π·Π΅Π»Π΅Π½Ρ‹ΠΉ» (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ), раздСляя ΠΈΡ… ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ клавиши (рис. 9).

Рис. 9. Окно String

ЗапуститС mygui ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список содСрТит Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ строки. Π’Ρ‹Π±ΠΎΡ€ Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… строк ΠΏΠΎΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ — трСбуСтся Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ событиС Callback Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка.

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° события Callback Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка состоит Π² ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ Π²Ρ‹Π±ΠΎΡ€Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΈ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ. Бвойство списка value содСрТит Π½ΠΎΠΌΠ΅Ρ€ Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ строки (строки списка Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ с Π΅Π΄ΠΈΠ½ΠΈΡ†Ρ‹). ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ pmColor_Callback ΠΈ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ switch для установки Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ Π² Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΠΈ ΠΎΡ‚ Π½ΠΎΠΌΠ΅Ρ€Π° Π²Ρ‹Π±Ρ€Π°Π½Π½ΠΎΠΉ строки списка.

Листинг 7. ИзмСнСниС Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ

function pmColor_Callback (hObject, eventdata, handles)

Num=get (hObject, 'Value');

switch Num

case 1

% УстанавливаСм синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','b');

case 2

% УстанавливаСм красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','r');

case 3

% УстанавливаСм Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','g');

end

ΠŸΠΎΠ»ΠΎΡΡ‹ скроллинга

Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ интСрфСйс прилоТСния mygui, прСдоставив ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°Ρ‚ΡŒ ΡˆΠΈΡ€ΠΈΠ½Ρƒ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ полосы скроллинга. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ полосу скроллинга Π² ΠΎΠΊΠ½ΠΎ прилоТСния ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ scrWidth Π² ΡΠ²ΠΎΠΉΡΡ‚Π²Π΅ Tag полосы. Π‘Π½Π°Π±Π΄ΠΈΡ‚Π΅ полосу скроллинга тСкстовым пояснСниСм «Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ» Ρ‚Π°ΠΊ ΠΆΠ΅, ΠΊΠ°ΠΊ ΠΈ Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉΡΡ список (рис. 10).

Рис. 10. Окно с ΠΏΠΎΠ»ΠΎΡΠΎΠΉ скроллинга Π’Π΅ΠΏΠ΅Ρ€ΡŒ слСдуСт ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚ΡŒ соотвСтствиС ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ Π±Π΅Π³ΡƒΠ½ΠΊΠ° полосы ΠΈ Ρ‡ΠΈΡΠ»ΠΎΠ²Ρ‹ΠΌ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ свойства value.

Π’Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ установки ΠΈΠ· Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° свойств.

1.Π’ MΠ°Ρ… занСситС Π΄Π΅ΡΡΡ‚ΡŒ, Π° Π² Min — Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. Бвойства MΠ°Ρ… ΠΈ Min полосы скроллинга ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° Π³Ρ€Π°Π½ΠΈΡ†Ρ‹ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ, записываСмых Π² value, ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠΈ Π±Π΅Π³ΡƒΠ½ΠΊΠ°.

2.ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠ΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, записав Π² value Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ. НаТмитС ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ свойства ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠ΅ΠΌΡΡ ΠΎΠΊΠ½Π΅ Value ΠΈΠ·ΠΌΠ΅Π½ΠΈΡ‚Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π΄ΠΈΠ½ΠΈΡ†Ρƒ.

3.ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ΡΡŒ ΠΊ ΡΠ²ΠΎΠΉΡΡ‚Π²Ρƒ Sliderstep. Π•Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ являСтся Π²Π΅ΠΊΡ‚ΠΎΡ€ ΠΈΠ· Π΄Π²ΡƒΡ… ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ², ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΈΠ· ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… опрСдСляСт ΠΎΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠ΅ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ value ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ со ΡΡ‚Ρ€Π΅Π»ΠΊΠ°ΠΌΠΈ полосы скроллинга, Π° Π²Ρ‚ΠΎΡ€ΠΎΠΉ — ΠΏΡ€ΠΈ пСрСтаскивании Π±Π΅Π³ΡƒΠ½ΠΊΠ° ΠΌΡ‹ΡˆΡŒΡŽ. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ [0.1 0.2] свойства Sliderstep для Ρ‚ΠΎΠ³ΠΎ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ полосы измСняло value Π½Π° Π΄Π΅ΡΡΡ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π½Ρ‚ΠΎΠ², Π° Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΌΡ‹ΡˆΠΈ справа ΠΈΠ»ΠΈ слСва ΠΎΡ‚ Π±Π΅Π³ΡƒΠ½ΠΊΠ° Π½Π° Π΄Π²Π°Π΄Ρ†Π°Ρ‚ΡŒ. РаскройтС строку Sliderstep Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π·Π½Π°ΠΊΡƒ плюс слСва ΠΎΡ‚ Π½Π°Π·Π²Π°Π½ΠΈΡ свойства ΠΈ Π² ΠΏΠΎΡΠ²ΠΈΠ²ΡˆΠΈΡ…ся строках Ρ… ΠΈ Ρƒ Π²Π²Π΅Π΄ΠΈΡ‚Π΅ 0.1 ΠΈ 0.2 (рис. 11).

ΠžΡΡ‚Π°Π»ΠΎΡΡŒ Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ событиС Callback полосы скроллинга с ΠΈΠΌΠ΅Π½Π΅ΠΌ scrWidth, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ состоит Π² Π·Π°Π΄Π°Π½ΠΈΠΈ ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π»ΠΈΠ½ΠΈΠΈ, Ρ€Π°Π²Π½ΠΎΠΉ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½ΠΎΠΌΡƒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡŽ value. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ scrWidth_Callback ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² Π½Π΅ΠΉ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ установки ΡˆΠΈΡ€ΠΈΠ½Ρ‹ Π»ΠΈΠ½ΠΈΠΈ

Рис. 11. SliderStep

Листинг 8. ИзмСнСниС Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹ Π»ΠΈΠ½ΠΈΠΈ

function scrWidth_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value скроллбара

w = get (hObject,'Value');

% УстанавливаСм Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹ Π»ΠΈΠ½ΠΈΠΈ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ value set (handles.line,'LineWidth', round (w));

ΠžΠ±Π»Π°ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° тСкста

ΠžΠ±Ρ‹Ρ‡Π½Ρ‹Π΅ тСкстовыС области, использовавшиСся Π½Π° ΠΏΡ€ΠΎΡ‚яТСнии ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΡ… Ρ€Π°Π·Π΄Π΅Π»ΠΎΠ², ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡŽΡ‚ лишь вывСсти Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ тСкст Π² ΠΎΠΊΠ½ΠΎ прилоТСния. ОбмСн тСкстовой ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠ΅ΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΈ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ осущСствляСтся ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ областСй Π²Π²ΠΎΠ΄Π° тСкста. ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²ΡŒΡ‚Π΅ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŽ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π½Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅. ВСкст Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строкС.

Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π² ΠΎΠΊΠ½ΠΎ прилоТСния ΠΎΠ±Π»Π°ΡΡ‚ΡŒ Π²Π²ΠΎΠ΄Π° тСкста, установитС Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ editTitle свойству Tag области Π²Π²ΠΎΠ΄Π° ΠΈ ΡΠ½Π°Π±Π΄ΠΈΡ‚Π΅ Π΅Π΅ ΠΏΠΎΡΡΠ½Π΅Π½ΠΈΠ΅ΠΌ Π² Ρ‚Скстовой области, располоТСнной Π²Ρ‹ΡˆΠ΅ Ρ‚Π°ΠΊ, ΠΊΠ°ΠΊ ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΎ Π½Π° Ρ€ΠΈΡ. 12. Π’ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ свойств ΡƒΠ΄Π°Π»ΠΈΡ‚Π΅ ΠΈΠ· String строку Edit Text, для Ρ‡Π΅Π³ΠΎ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π² ΡΡ‚Ρ€ΠΎΠΊΠ΅ с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ свойства ΠΈ ΡΠΎΡ‚Ρ€ΠΈΡ‚Π΅ тСкст Π² ΠΎΠΊΠ½Π΅ String.

Листинг 9. ИзмСнСниС Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

function btnPlot_Callback (hObject, eventdata, handles)

%

% ΠžΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‰ΠΈΠ΅ Π·Π° ΠΏΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈ Ρ‚. Π΄.

%

title (get (handles.editTitle,'String'))

Рис. 12. Окно с ΠΎΠ±Π»Π°ΡΡ‚ΡŒΡŽ Π²Π²ΠΎΠ΄Π° тСкста

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° ΠΈ ΠΌΠ΅Π½ΡŽ прилоТСния

Π’ΠΈΠ΄Ρ‹ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Ρ… ΠΎΠΊΠΎΠ½

Π£Π΄ΠΎΠ±Π½Ρ‹ΠΉ интСрфСйс прилоТСния Π²ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΠΌ опрСдСляСтся Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹ΠΌΠΈ ΠΎΠΊΠ½Π°ΠΌΠΈ, ΠΎΠ±Π»Π΅Π³Ρ‡Π°ΡŽΡ‰ΠΈΠΌΠΈ Ρ€Π°Π±ΠΎΡ‚Ρƒ с Ρ„Π°ΠΉΠ»Π°ΠΌΠΈ, ΠΈΠ»ΠΈ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½Ρ‹ΠΌΠΈ для прСдостСрСТСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΎ ΡΠΎΠ±Ρ‹Ρ‚иях, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΌΠΎΠ³ΡƒΡ‚ ΠΏΠΎΠ²Π»Π΅Ρ‡ΡŒ Π΅Π³ΠΎ дСйствия. MatLab прСдоставляСт Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΡƒ прилоТСния Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартныС Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²Ρ‹Π΅ ΠΎΠΊΠ½Π° Windows.

Окно подтвСрТдСния

НСкоторыС дСйствия прилоТСния Ρ‚Ρ€Π΅Π±ΡƒΡŽΡ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΠ³ΠΎ подтвСрТдСния ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ. НапримСр, ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ прилоТСния mygui ΠΌΠΎΠΆΠ΅Ρ‚ случайно Π½Π°ΠΆΠ°Ρ‚ΡŒ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для очистки осСй. Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ вывСсти Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΡƒΠΊΠ°ΠΆΠ΅Ρ‚, Π΄Π΅ΠΉΡΡ‚Π²ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Π»ΠΈ трСбуСтся ΠΎΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси.

Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ подтвСрТдСния создаСтся Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ questdlg, которая Π² ΡΠ°ΠΌΠΎΠΌ простом случаС ΠΈΠΌΠ΅Π΅Ρ‚ Π΄Π²Π° Π²Ρ…ΠΎΠ΄Π½Ρ‹Ρ… ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Π° — строки с Ρ‚Скстом Π²Π½ΡƒΡ‚Ρ€ΠΈ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΎΠΊΠ½Π°. Окно, создаваСмоС Ρ‚Π°ΠΊΠΈΠΌ ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ, ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚Ρ€ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ — Yes, No ΠΈ Cancel. Π’Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ возвращаСтся Π² ΡΡ‚Ρ€ΠΎΠΊΠΎΠ²ΠΎΠΌ Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ questdlg, Π΅Π³ΠΎ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ совпадаСт с Π½Π°Π΄ΠΏΠΈΡΡŒΡŽ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ΅.

Π£ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΡΡ‚Π²ΡƒΠΉΡ‚Π΅ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹ Π²Ρ‹ΠΏΠΎΠ»Π½ΡΠ»ΠΈΡΡŒ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π² Ρ‚ΠΎΠΌ случаС, Ссли ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠ°Π» ΠΊΠ½ΠΎΠΏΠΊΡƒ Yes Π² ΠΏΠΎΡΠ²Π»ΡΡŽΡ‰Π΅ΠΌΡΡ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ с Ρ‚Скстом ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси? ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ mygui. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠΉΡ‚Π΅ условный ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€ if ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ strcmp для сравнСния Π²Ρ‹Ρ…ΠΎΠ΄Π½ΠΎΠ³ΠΎ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π° questdlg со ΡΡ‚Ρ€ΠΎΠΊΠΎΠΉ Yes (листинг 6).

Листинг 10. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° запроса

button = questdlg ('ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси?','mygui');

if strcmp (button, 'Yes')

% здСсь Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°ΡŽΡ‚ΡΡ всС ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹,

% ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°ΡŽΡ‰ΠΈΠ΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ

end

НаТатиС Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ³ΠΎ Π½Π° Ρ€ΠΈΡ. 13. Π’Ρ‹Π±ΠΎΡ€ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ опрСдСляСт дальнСйшиС дСйствия прилоТСния mygui.

Рис. 13. Π”ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ подтвСрТдСния Ѐункция questdlg позволяСт ΡƒΠΏΡ€Π°Π²Π»ΡΡ‚ΡŒ Π²ΠΈΠ΄ΠΎΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. Π‘Ρ‚Ρ€ΠΎΠΊΠ° с Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ, пСрСданная Π² Ρ‚Ρ€Π΅Ρ‚ΡŒΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎΠΌ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π΅, опрСдСляСт ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΎΠΊΠ½Π°, которая ΠΌΠΎΠΆΠ΅Ρ‚ Π±Ρ‹Ρ‚ΡŒ Π½Π°ΠΆΠ°Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ клавиши. НапримСр, Π²Ρ‹Π·ΠΎΠ²

Button = questdlg ('ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси?','mygui', 'Yes');

ΠΏΡ€Π΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ‚, Ρ‡Ρ‚ΠΎ Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ клавиши эквивалСнтно Π²Ρ‹Π±ΠΎΡ€Ρƒ ΠΊΠ½ΠΎΠΏΠΊΠΈ Yes.

Число ΠΊΠ½ΠΎΠΏΠΎΠΊ ΠΈ Π½Π°Π΄ΠΏΠΈΡΠΈ Π½Π° Π½ΠΈΡ… ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΡΡŽΡ‚ΡΡ создатСлСм прилоТСния, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π°Ρ Ρ„ΠΎΡ€ΠΌΠ° обращСния ΠΊ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ questdlg

Button = questdlg ('ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси?', 'mygui','Π”Π°','НСт','НСт')

ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° с Ρ‚Скстом ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси?, Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ mygui ΠΈ Π΄Π²ΡƒΠΌΡ ΠΊΠ½ΠΎΠΏΠΊΠ°ΠΌΠΈ Π”Π° ΠΈ ΠΠ΅Ρ‚, ΠΏΡ€ΠΈΡ‡Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠ΅ замСняСт Π²Ρ‹Π±ΠΎΡ€ НСт.

Окно с ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅

НСкоторыС дСйствия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ, Π² Ρ‡Π°ΡΡ‚ности ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚ΠΈΠ΅ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ Π² Π½Π΅ΠΈΠ·Π²Π΅ΡΡ‚Π½ΠΎΠΌ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π΅, ΠΌΠΎΠ³ΡƒΡ‚ привСсти ΠΊ ΠΎΡˆΠΈΠ±ΠΊΠ΅ Π² Ρ€Π°Π±ΠΎΡ‚Π΅ прилоТСния. Π’Π°ΠΊΠΈΠ΅ ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ ситуации слСдуСт ΠΏΡ€Π΅Π΄ΡƒΡΠΌΠ°Ρ‚Ρ€ΠΈΠ²Π°Ρ‚ΡŒ ΠΏΡ€ΠΈ написании Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° прилоТСния ΠΈ ΡΠΎΠΏΡ€ΠΎΠ²ΠΎΠΆΠ΄Π°Ρ‚ΡŒ ΠΈΡ… ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅. Π›ΡƒΡ‡ΡˆΠ΅ всСго Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ сообщСниС Π² Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ автоматичСски размСщаСтся ΠΏΠΎΠ²Π΅Ρ€Ρ… всСх ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Ρ… ΠΎΠΊΠΎΠ½ ΠΈ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΠš для продолТСния Ρ€Π°Π±ΠΎΡ‚Ρ‹.

Ѐункция errordlg ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для создания Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ³ΠΎ ΠΎΠΊΠ½Π° с ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅. Π’Ρ…ΠΎΠ΄Π½Ρ‹ΠΌΠΈ Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚Π°ΠΌΠΈ errordlg ΡΠ²Π»ΡΡŽΡ‚ΡΡ строки с Ρ‚Скстом ΠΈ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠΎΠΌ ΠΎΠΊΠ½Π°.

Π”ΠΎΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ построСниС Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΎΠΉ Π½Π° Ρ€Π°Π·ΠΌΠ΅Ρ€Π½ΠΎΡΡ‚ΡŒ ΠΈ Ρ‚ΠΈΠΏ содСрТимого массива Mas ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ size, ndims ΠΈ isnumeric ΠΈ Π²Ρ‹Π²Π΅Π΄ΠΈΡ‚Π΅ сообщСниС Π² ΡΠ»ΡƒΡ‡Π°Π΅ Π½Π΅ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π΄Π°Π½Π½Ρ‹Ρ…. Π—Π°ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅ считываниС ΠΈ Π²ΠΈΠ·ΡƒΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡŽ Π΄Π°Π½Π½Ρ‹Ρ… Π² Π±Π»ΠΎΠΊ try… catch end для прСдотвращСния ошибки ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ load (листинг 7). ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ Π² MatLab 6. x ΡΠ»Π΅Π΄ΡƒΠ΅Ρ‚ Π·Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° Π»ΠΈΠ½ΠΈΡŽ Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Ρƒ handles. line ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ, ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΡ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ guidata.

Листинг 11. ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΈΡΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… ситуаций с ΡΠΎΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ΠΌ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅

try

% Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ²

Mas = load ('data.txt');

% ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² массива

SMas = size (Mas);

% ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° массива Π΄Π°Π½Π½Ρ‹Ρ…

if ((SMas (2) ≅ 2) | (ndims (Mas) ≅ 2) | ~isnumeric (Mas))

errordlg ('НСизвСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ', 'Ошибка!')

else

% ГрафичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

headers.line = plot (Mas (, 1), Mas (:, 2)) ;

end

catch

% ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ load

errordlg ('НСизвСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ', 'Ошибка!')

end

МСню графичСского ΠΎΠΊΠ½Π°

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ MatLab ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ стандартноС мСню графичСского ΠΎΠΊΠ½Π°. Π‘Ρ€Π΅Π΄Π° GUIDE позволяСт программисту Π΄ΠΎΠΏΠΎΠ»Π½ΡΡ‚ΡŒ стандартноС мСню ΠΈΠ»ΠΈ ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ собствСнныС мСню. Бвойство MenuBar ΠΎΠΊΠ½Π° прилоТСния (ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π° figure) ΠΎΡ‚Π²Π΅Ρ‡Π°Π΅Ρ‚ Π·Π° Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ стандартных мСню File, Edit, Tools, Window ΠΈ Help Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ figure Π΄Π°Π½Π½ΠΎΠ³ΠΎ свойства соотвСтствуСт ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ стандартных мСню, Π° none ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ Π±Π΅Π· строки с ΠΌΠ΅Π½ΡŽ. Π’Π½Π΅ зависимости ΠΎΡ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΡ свойства MenuBar, Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ прилоТСния ΠΈΠΌΠ΅Π΅Ρ‚ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Ρ€Π°Π·ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ собствСнныС мСню, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π² ΡΠ»ΡƒΡ‡Π°Π΅ значСния figure Π΄ΠΎΠ±Π°Π²Π»ΡΡŽΡ‚ΡΡ ΠΊ ΡΡ‚Π°Π½Π΄Π°Ρ€Ρ‚Π½Ρ‹ΠΌ мСню графичСского ΠΎΠΊΠ½Π°. Π Π°Π·ΠΌΠ΅Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ мСню производится ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню.

Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ мСню Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования прилоТСния Π² ΡΡ€Π΅Π΄Π΅ GUIDE. ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏ конструирования мСню ΠΏΡ€ΠΎΡ‰Π΅ всСго ΠΏΠΎΠ½ΡΡ‚ΡŒ, создавая Π½ΠΎΠ²ΠΎΠ΅ мСню — ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ свойство MenuBar графичСского ΠΎΠΊΠ½Π° установлСно Π² none. ЗапуститС Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ мСню ΠΈΠ· ΠΏΠ°Π½Π΅Π»ΠΈ управлСния (ΠΈΠ»ΠΈ Π²Ρ‹Π±ΠΎΡ€ΠΎΠΌ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню Tools->Menu Editor…), появляСтся ΠΎΠΊΠ½ΠΎ Menu Editor, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΠΎΠ΅ Π½Π° Ρ€ΠΈΡ. 14.

Окно Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню содСрТит Π΄Π²Π΅ Π²ΠΊΠ»Π°Π΄ΠΊΠΈ: Menu Bar, ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π½ΡƒΡŽ для создания строки мСню прилоТСния, ΠΈ Context Menus для контСкстного мСню. ΠžΠ±Π»Π°ΡΡ‚ΠΈ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π° ΠΈ ΡΠ²ΠΎΠΉΡΡ‚Π² элСмСнтов мСню ΠΏΠΎΠΊΠ° пустыС. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ мСню, Π½Π°ΠΆΠ°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню (ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Π²Ρ‹Π±Ρ€Π°Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ° Menu Bar), Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅ появилась строка Untitled 1, сдСлайтС Π΅Π΅ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ ΠΌΡ‹ΡˆΠΈ. Π’ ΠΎΠ±Π»Π°ΡΡ‚ΠΈ свойств находятся строки Π²Π²ΠΎΠ΄Π° (рис. 15).

Рис. 14 Π Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€ мСню Guide Menu Editor

Рис. 15. Π—Π°Π΄Π°Π½ΠΈΠ΅ свойств мСню Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅

Π‘Ρ‚Ρ€ΠΎΠΊΠ° Label слуТит для задания надписи мСню ΠΈΠ»ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню, a Tagдля опрСдСлСния названия созданного ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. Π’Π²Π΅Π΄ΠΈΡ‚Π΅ тСкст «Π“Ρ€Π°Ρ„ΠΈΠΊ» Π² ΡΡ‚Ρ€ΠΎΠΊΡƒ Label (Π±Π΅Π· ΠΊΠ°Π²Ρ‹Ρ‡Π΅ΠΊ) ΠΈ Π·Π°Π΄Π°ΠΉΡ‚Π΅ имя mnGraph. ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ Π² Π½Π°Π»ΠΈΡ‡ΠΈΠΈ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ. Π’Ρ‹Π±ΠΎΡ€ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ Π² Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ мСню, слСдуСт ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ мСню. ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π² Ρ€Π΅ΠΆΠΈΠΌ рСдактирования, сдСлайтС Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строку Π“Ρ€Π°Ρ„ΠΈΠΊ Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню ΠΈ Π΄ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ ΠΏΡƒΠ½ΠΊΡ‚, Π½Π°ΠΆΠ°Π² ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ инструмСнтов Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню. УстановитС надпись ΠΏΡƒΠ½ΠΊΡ‚Π° ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ имя mnGraphPlot. Π”ΠΎΠ±Π°Π²ΡŒΡ‚Π΅ Π΅Ρ‰Π΅ ΠΎΠ΄ΠΈΠ½ ΠΏΡƒΠ½ΠΊΡ‚ мСню, сдСлав ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ строку Π“Ρ€Π°Ρ„ΠΈΠΊ Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅. Аналогичным ΠΎΠ±Ρ€Π°Π·ΠΎΠΌ Π·Π°Π΄Π°ΠΉΡ‚Π΅ надпись ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ ΠΈ ΠΈΠΌΡ mnGraphClear. Навигатор мСню Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ структуру, ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Π½ΡƒΡŽ Π½Π° Ρ€ΠΈΡ. 16. МСню Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΡƒΡ€ΠΎΠ²Π΅Π½ΡŒ, Π° ΠΏΡƒΠ½ΠΊΡ‚Ρ‹ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ — Π²Ρ‚ΠΎΡ€ΠΎΠΉ.

Рис. 16 Π˜Π΅Ρ€Π°Ρ€Ρ…ΠΈΡ элСмСнтов мСню ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui. Π’Ρ‹Π±ΠΎΡ€ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ Ρ€Π°ΡΠΊΡ€Ρ‹Ρ‚ΠΈΡŽ мСню. Пока ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Ρ‰Π΅Π½ΠΈΠΈ ΠΊ ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ ΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π½ΠΈΡ‡Π΅Π³ΠΎ Π½Π΅ ΠΏΡ€ΠΎΠΈΡΡ…ΠΎΠ΄ΠΈΡ‚, слСдуСт Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ события Callback ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню. Π‘ΠΎΠ±Ρ‹Ρ‚ΠΈΠ΅ Callback самого мСню Π“Ρ€Π°Ρ„ΠΈΠΊ Π½Π΅ Ρ‚Ρ€Π΅Π±ΡƒΠ΅Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ, Ρ‚. ΠΊ. происходит автоматичСскоС раскрытиС мСню.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

Π’Ρ‹Π±ΠΎΡ€ элСмСнта мСню Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π° мСню ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ Π΅Π³ΠΎ свойств Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ Properties. Π‘Ρ‚Ρ€ΠΎΠΊΠ° Π²Π²ΠΎΠ΄Π° Callback ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½Π° для Π²Ρ‹Π·ΠΎΠ²Π° ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ М-Ρ„Π°ΠΉΠ»Π° прилоТСния, содСрТащСго ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΡƒ событии элСмСнтов интСрфСйса.

Π’ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡŽ M-Ρ„Π°ΠΉΠ»Π΅ автоматичСски ΡΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ Callback созданных элСмСнтов мСню. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡΡ‚Ρƒ, ΠΊΠ°ΠΊ ΠΈ Π² ΡΠ»ΡƒΡ‡Π°Π΅ создания Π΄Ρ€ΡƒΠ³ΠΈΡ… элСмСнтов управлСния, слСдуСт Π½Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΠΈΡ… ΡΠΎΠ΄Π΅Ρ€ΠΆΠΈΠΌΡ‹ΠΌ — ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Π°ΠΌΠΈ, производящими Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΡ‹Π΅ дСйствия.

ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Ρ„Π°ΠΉΠ» mygui. m Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ М-Ρ„Π°ΠΉΠ»ΠΎΠ² ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ Π΄Π²Π΅ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ для созданных элСмСнтов мСню.

Листинг 12. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню

function mnGraphPlot_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

btnPlot_Callback (hObject, eventdata, handles)

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ нСдоступна

set (handles.btnPlot,'Enable','off')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ доступна

set (handles.btnClear,'Enable','on')

function mnGraphClear_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ

btnClear_Callback (hObject, eventdata, handles)

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ доступна

set (handles.btnPlot,'Enable','on')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ нСдоступна

set (handles.btnClear,'Enable','off')

ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ²

ΠžΠ±ΡŠΠ΅ΠΊΡ‚Ρ‹, Π² Ρ‚ΠΎΠΌ числС ΠΈ ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹Π΅ Π² Ρ…ΠΎΠ΄Π΅ Ρ€Π°Π±ΠΎΡ‚Ρ‹ прилоТСния, ΠΌΠΎΠ³ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ собствСнноС контСкстноС мСню, ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ активизируСтся Ρ‰Π΅Π»Ρ‡ΠΊΠΎΠΌ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΌΡ‹ΡˆΠΈ. ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎΠ΅ мСню позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ быстрый доступ ΠΊ Ρ‡Π°ΡΡ‚ΠΎ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅ΠΌΡ‹ΠΌ свойствам ΠΎΠ±ΡŠΠ΅ΠΊΡ‚Π°. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ контСкстного мСню состоит Π² ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ Π΅Π³ΠΎ Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ мСню, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠΈ событий Callback ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ связывании мСню с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ.

БозданиС мСню

ΠŸΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ ΠΊ Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Context Menus Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ мСню ΠΈ Π½Π°ΠΆΠΌΠΈΡ‚Π΅ ΠΊΠ½ΠΎΠΏΠΊΡƒ создания контСкстного мСню (см. Ρ€ΠΈΡ. 17), Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅ мСню появляСтся строка для мСню. Π—Π°Π΄Π°ΠΉΡ‚Π΅ Π΅ΠΌΡƒ имя cmLine. ΠžΠ±Ρ€Π°Ρ‚ΠΈΡ‚Π΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, Ρ‡Ρ‚ΠΎ Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ свойств Π½Π΅Ρ‚ строки Π²Π²ΠΎΠ΄Π° Label, Ρ‚. ΠΊ. Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π΅ΡΡ мСню Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΈΠΌΠ΅Ρ‚ΡŒ надписи. Π‘ΠΎΠ·Π΄Π°ΠΉΡ‚Π΅ Ρ‚Ρ€ΠΈ ΠΏΡƒΠ½ΠΊΡ‚Π° мСню ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ Ρ‚ΠΎΠΉ ΠΆΠ΅ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Ρ‡Ρ‚ΠΎ примСняСтся для добавлСния ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² мСню ΠΎΠΊΠ½Π° прилоТСния. ΠžΠΏΡ€Π΅Π΄Π΅Π»ΠΈΡ‚Π΅ для Π½ΠΈΡ… надписи синий, красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ ΠΈ ΠΈΠΌΠ΅Π½Π° cmLineBlue, cmLineRed, cmLineGreen соотвСтствСнно. Π’ Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€ мСню Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ структуру, ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½Π½ΡƒΡŽ Π½Π° Ρ€ΠΈΡ. 17.

Рис. 17 ΠžΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ контСкстного мСню Π² Π½Π°Π²ΠΈΠ³Π°Ρ‚ΠΎΡ€Π΅ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² Π’ Ρ€Π°Π±ΠΎΡ‚Π°ΡŽΡ‰Π΅ΠΌ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΡŽ контСкстного мСню. БСйчас контСкстноС мСню cmLine присутствуСт Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΊΠ°ΠΊ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Π½ΠΎ Π΄Ρ€ΡƒΠ³ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ — линия, создаваСмая ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π½Π° ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, «Π½Π΅ Π·Π½Π°Π΅Ρ‚» ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρƒ Π½Π΅Π΅ Π΅ΡΡ‚ΡŒ собствСнноС контСкстноС мСню. Π‘Π»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ этап состоит Π² ΡΠ²ΡΠ·Ρ‹Π²Π°Π½ΠΈΠΈ Π»ΠΈΠ½ΠΈΠΈ с ΡΠΎΠ·Π΄Π°Π½Π½Ρ‹ΠΌ мСню cmLine.

БвязываниС контСкстного мСню с ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠΌ

Π›ΡŽΠ±ΠΎΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ€Π°Π·ΠΌΠ΅Ρ‰Π΅Π½Π½Ρ‹ΠΉ Π² ΠΎΠΊΠ½Π΅ прилоТСния, ΠΈΠΌΠ΅Π΅Ρ‚ свойство UIContextMenu, Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ΠΌ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚ ΡΠ²Π»ΡΡ‚ΡŒΡΡ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π½Π° ΠΈΠΌΠ΅ΡŽΡ‰Π΅Π΅ΡΡ контСкстноС мСню. Для Ρ‚ΠΎΠ³ΠΎ Ρ‡Ρ‚ΠΎΠ±Ρ‹ созданный ΠΎΠ±ΡŠΠ΅ΠΊΡ‚, Ρ‚. Π΅. линия Π³Ρ€Π°Ρ„ΠΈΠΊΠ°, ΠΎΠ±Π»Π°Π΄Π°Π» контСкстным мСню, слСдуСт ΡƒΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ свойству UIContextMenu Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ указатСля Π½Π° ΠΌΠ΅Π½ΡŽ cmLine, содСрТащССся Π² ΡΡ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π΅ handles. ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ mygui производится ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ, ΠΈΠ»ΠΈ ΠΏΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ ΠΏΡƒΠ½ΠΊΡ‚Π° ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ. ΠŸΡ€ΠΈΡΠ²ΠΎΠΉΡ‚Π΅ свойству Π»ΠΈΠ½ΠΈΠΈ UIContextMenu Ρ‚Ρ€Π΅Π±ΡƒΠ΅ΠΌΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Π²ΠΎ Π²ΡΠ΅Ρ… Π±Π»ΠΎΠΊΠ°Ρ… М-Ρ„Π°ΠΉΠ»Π°, связанного с mygui, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ ΠΎΡ‚Π²Π΅Ρ‡Π°ΡŽΡ‚ Π·Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (листинг 8).

Листинг 13. БвязываниС контСкстного мСню с Π»ΠΈΠ½ΠΈΠ΅ΠΉ

handles.line = plot (x, Ρƒ);

guidata (gcbo, handles);

% БвязываниС контСкстного мСню cmLine с Π»ΠΈΠ½ΠΈΠ΅ΠΉ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

set (handles.line, 'UIContextMenu', handles. cmLine)

ЗапуститС ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ mygui, постройтС линию Π»ΡŽΠ±Ρ‹ΠΌ ΠΈΠ· Π΄ΠΎΡΡ‚ΡƒΠΏΠ½Ρ‹Ρ… способов ΠΈ ΡƒΠ±Π΅Π΄ΠΈΡ‚Π΅ΡΡŒ, Ρ‡Ρ‚ΠΎ Ρ‰Π΅Π»Ρ‡ΠΎΠΊ ΠΏΡ€Π°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡ‹ΡˆΠΈ ΠΏΠΎ Π»ΠΈΠ½ΠΈΠΈ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ контСкстного мСню с ΠΏΡƒΠ½ΠΊΡ‚Π°ΠΌΠΈ синий, красный, Π·Π΅Π»Π΅Π½Ρ‹ΠΉ. Π’Ρ‹Π±ΠΎΡ€ ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² Π½Π΅ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ, ΠΎΡ‡Π΅Π²ΠΈΠ΄Π½ΠΎ, Ρ‡Ρ‚ΠΎ слСдуСт Π·Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ событиС Callback ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡƒΠ½ΠΊΡ‚Π°.

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ контСкстного мСню

ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° событий Callback ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² контСкстного мСню производится Π°Π½Π°Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ мСню прилоТСния. УстановитС Π² Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΎΡ€Π΅ мСню для ΠΏΡƒΠ½ΠΊΡ‚ΠΎΠ² cmLineBlue, cmLineRed, cmLineGreen соотвСтствСнно Π²Ρ‹Π·ΠΎΠ²Ρ‹:

mygui ('cmLineBlue_Callback', gcbo,[ ], guidata (gcbo))

mygui ('cmLineRed_Callback', gcbo,[], guidata (gcbo)) mygui ('cmLineGreen_Callback', gcbo,[], guidata (gcbo))

Π° Π² Ρ„Π°ΠΉΠ»Π΅ mygui. m ΠΎΠΏΠΈΡˆΠΈΡ‚Π΅ Π΄Π°Π½Π½Ρ‹Π΅ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² ΡΠΎΠΎΡ‚вСтствии с Π»ΠΈΡΡ‚ΠΈΠ½Π³ΠΎΠΌ 14.

Листинг 14. ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠ΅ контСкстного мСню

function cmLineBlue_Callback (hObject, eventdata, handles)

%ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'b')

function cmLineRed_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'r')

function cmLineGreen_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'g')

Π—Π°ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠΈΡ€ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΠΈ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ΅ с Π»ΠΈΠ½ΠΈΠ΅ΠΉ контСкстноС мСню Ρ€Π°Π·Ρ€Π΅ΡˆΠ°Π΅Ρ‚ быстрый доступ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ ΠΊ Ρ†Π²Π΅Ρ‚Ρƒ Π»ΠΈΠ½ΠΈΠΈ. ΠžΡΡ‚Π°Π»ΠΎΡΡŒ ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΡ‚ΡŒ ΡΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ контСкстного мСню со ΡΠΏΠΈΡΠΊΠΎΠΌ Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ с ΠΈΠΌΠ΅Π½Π΅ΠΌ pmColor. Π’Ρ‹Π±ΠΎΡ€ Ρ†Π²Π΅Ρ‚Π° ΠΈΠ· ΠΌΠ΅Π½ΡŽ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΊ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡŽ Ρ†Π²Π΅Ρ‚Π° Π»ΠΈΠ½ΠΈΠΈ, Π½ΠΎ ΠΈ ΠΊ ΠΏΠΎΡΠ²Π»Π΅Π½ΠΈΡŽ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅ΠΉ строки Π² Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅ΠΌΡΡ спискС. Π’ ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΏΠΎΠ΄Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡŽ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ события Callback ΠΏΡƒΠ½ΠΊΡ‚Π° контСкстного мСню слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ ΠΎΠΏΠ΅Ρ€Π°Ρ‚ΠΎΡ€Ρ‹, ΡƒΡΡ‚Π°Π½Π°Π²Π»ΠΈΠ²Π°ΡŽΡ‰ΠΈΠ΅ Π½ΡƒΠΆΠ½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ (1, 2 ΠΈΠ»ΠΈ 3) свойства value Ρ€Π°ΡΠΊΡ€Ρ‹Π²Π°ΡŽΡ‰Π΅Π³ΠΎΡΡ списка (листинг 15).

Листинг 15. Богласованная Ρ€Π°Π±ΠΎΡ‚Π° мСню ΠΈ ΡΠΏΠΈΡΠΊΠ° Π²Ρ‹Π±ΠΎΡ€Π° Ρ†Π²Π΅Ρ‚Π°

function cmLineBlue_Callback (hObject, eventdata, handles)

%ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'b')

set (handles.pmColor, 'Value', 1)

function cmLineRed_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'r')

set (handles.pmColor, 'Value', 2)

function cmLineGreen_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

set (handles.line,'Color', 'g')

set (handles.pmColor, 'Value', 3)

Π—Π°Π΄Π°Π½ΠΈΠ΅ Π½Π° Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΡƒΡŽ Ρ€Π°Π±ΠΎΡ‚Ρƒ

ЦСль Π΄Π°Π½Π½ΠΎΠΉ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ — ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ MATLAB 6. x ΠΈ ΠΎΡΠ½ΠΎΠ² программирования событий ΠΎΡ‚ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² интСрфСйса.

ΠŸΠΎΡΡ‚Π°Π½ΠΎΠ²ΠΊΠ° Π·Π°Π΄Π°Ρ‡ΠΈ. НСобходимо ΠΏΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚Π° MATLAB ΡΠΎΠ·Π΄Π°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠΊΠ½ΠΎ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ³ΠΎ содСрТит ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ элСмСнты: оси, Ρ‚Ρ€ΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ, Π΄Π²Π° поля Π²Π²ΠΎΠ΄Π° тСкста.

Π’ ΠΎΠ΄Π½ΠΎ ΠΈΠ· Ρ‚Скстовых ΠΏΠΎΠ»Π΅ΠΉ вводится функция, Π² Π΄Ρ€ΡƒΠ³ΠΎΠ΅ — количСство Ρ‡Π»Π΅Π½ΠΎΠ², ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Π½ΡƒΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΈΠ· Ρ€Π°Π·Π»ΠΎΠΆΠ΅Π½ΠΈΡ Π΄Π°Π½Π½ΠΎΠΉ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² Ρ€ΡΠ΄ Π’Π΅ΠΉΠ»ΠΎΡ€Π°. НаТатиС Π½Π° ΠΎΠ΄Π½Ρƒ ΠΊΠ½ΠΎΠΏΠΊΡƒ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ исходной Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ. НаТатиС Π½Π° Π²Ρ‚ΠΎΡ€ΡƒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ позволяСт ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ Π³Ρ€Π°Ρ„ΠΈΠΊ суммы Π·Π°Π΄Π°Π½Π½ΠΎΠ³ΠΎ количСства Ρ‡Π»Π΅Π½ΠΎΠ² ряда Π’Π΅ΠΉΠ»ΠΎΡ€Π° ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π΅Π³ΠΎ ΠΊ Ρ€Π°Π½Π΅Π΅ построСнным Π³Ρ€Π°Ρ„ΠΈΠΊΠ°ΠΌ. Π“Ρ€Π°Ρ„ΠΈΠΊΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΈΠΌΠ΅Ρ‚ΡŒ Ρ€Π°Π·Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚. НаТатиС Π½Π° Ρ‚Ρ€Π΅Ρ‚ΡŒΡŽ ΠΊΠ½ΠΎΠΏΠΊΡƒ ΠΏΡ€ΠΈΠ²ΠΎΠ΄ΠΈΡ‚ ΠΊ ΠΎΡ‡ΠΈΡΡ‚ΠΊΠ΅ ΠΎΠΊΠ½Π°, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ выводятся Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

Π‘Π»Π΅Π΄ΡƒΠ΅Ρ‚ ΠΎΡ‚ΠΌΠ΅Ρ‚ΠΈΡ‚ΡŒ, Ρ‡Ρ‚ΠΎ срСда GUIDE позволяСт достаточно просто Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ для провСдСния собствСнных исслСдований. ОсновноС прСимущСство Π²ΠΈΠ·ΡƒΠ°Π»ΡŒΠ½ΠΎΠΉ срСды GUIDE ΠΏΠΎ ΡΡ€Π°Π²Π½Π΅Π½ΠΈΡŽ со ΠΌΠ½ΠΎΠ³ΠΈΠΌΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠΌΠΈ соврСмСнными языками программирования состоит Π² Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ большой Π½Π°Π±ΠΎΡ€ Π³ΠΎΡ‚ΠΎΠ²Ρ‹Ρ… Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ MATLAB, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅Π°Π»ΠΈΠ·ΡƒΡŽΡ‚ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΡ‹ Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΡˆΠΈΡ€ΠΎΠΊΠΎΠ³ΠΎ спСктра Π·Π°Π΄Π°Ρ‡.

Π’ ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ ΠΏΡ€ΠΈΠ²Π΅Π΄Π΅Π½ ΠΎΠ±Ρ€Π°Π·Π΅Ρ† Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΠ²Ρ‚оматизация ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний». Π Π°Π±ΠΎΡ‚Π° Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½Π° Π½Π° ΠΈΠ·ΡƒΡ‡Π΅Π½ΠΈΠ΅ основных ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠΎΠ² создания ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ Π² ΠΏΠ°ΠΊΠ΅Ρ‚Π΅ MATLAB 6. x ΠΈ ΠΎΡΠ½ΠΎΠ² программирования событий ΠΎΡ‚ ΡΠ»Π΅ΠΌΠ΅Π½Ρ‚ΠΎΠ² интСрфСйса.

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅

function varargout = mygui (varargin)

gui_Singleton = 1;

gui_State = struct ('gui_Name', mfilename, …

'gui_Singleton', gui_Singleton, …

'gui_OpeningFcn', @mygui_OpeningFcn, …

'gui_OutputFcn', @mygui_OutputFcn, …

'gui_LayoutFcn', [], …

'gui_Callback', []);

if nargin & isstr (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 mygui_OpeningFcn (hObject, eventdata, handles, varargin)

handles.output = hObject;

guidata (hObject, handles);

% —————————————————————————————————-;

function varargout = mygui_OutputFcn (hObject, eventdata, handles)

varargout{1} = handles. output;

% —————————————————————————————————-;

function btnPlot_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ для Π²Ρ‹Π±ΠΎΡ€Π° Π²Ρ‹Ρ€ΠΈΠ°Π½Ρ‚Π° получСния исходных Π΄Π°Π½Π½Ρ‹Ρ…

button = questdlg ('Π”Π°Π½Π½Ρ‹Π΅','mygui','По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ','Из Ρ„Π°ΠΉΠ»Π°','По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ');

% Π’Ρ‹Π±Ρ€Π°Π½ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ «Π˜Π· Ρ„Π°ΠΉΠ»Π°»

if strcmp (button, 'Из Ρ„Π°ΠΉΠ»Π°')

try

% Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΈΠ· Ρ„Π°ΠΉΠ»Π° Π² ΠΌΠ°ΡΡΠΈΠ²

Mas = load ('data.txt');

% ΠžΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠ² массива

SMas = size (Mas);

% ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° массива Π΄Π°Π½Π½Ρ‹Ρ…

if ((SMas (2) ≅ 2) | (ndims (Mas) ≅ 2) | ~isnumeric (Mas))

errordlg ('НСизвСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ', 'Ошибка!')

else

% ГрафичСскоС ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ…

handles.line = plot (Mas (, 1), Mas (, 2));

guidata (gcbo, handles);

set (handles.line, 'UIContextMenu', handles. cmLine);

end

catch

% ΠŸΡ€ΠΎΠΈΠ·ΠΎΡˆΠ»Π° ошибка ΠΏΡ€ΠΈ Π²Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ load

errordlg ('НСизвСстный Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Ρ„Π°ΠΉΠ»Π° с Π΄Π°Π½Π½Ρ‹ΠΌΠΈ', 'Ошибка!')

end

else

% Π’Ρ‹Π±Ρ€Π°Π½ Π²Ρ‹Ρ€ΠΈΠ°Π½Ρ‚ «ΠŸΠΎ ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ»

% ΠŸΠΎΡΡ‚Ρ€ΠΎΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ

x=[-2:0.2:2];

y=exp (-x.^2);

handles.line = plot (x, y);

guidata (gcbo, handles);

set (handles.line, 'UIContextMenu', handles. cmLine)

%ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π»Π°Π³Π° сСтка ΠΏΠΎ Ρ…

if get (handles.chbxGridX, 'Value')

% Π€Π»Π°Π³ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'XGrid', 'on')

else

% Π€Π»Π°Π³ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'XGrid', 'off')

end

% ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Ρ„Π»Π°Π³Π° сСтка ΠΏΠΎ Ρ…

if get (handles.chbxGridY, 'Value')

% Π€Π»Π°Π³ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'YGrid', 'on')

else

% Π€Π»Π°Π³ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½, слСдуСт ΡƒΠ±Ρ€Π°Ρ‚ΡŒ Π»ΠΈΠ½ΠΈΠΈ сСтки

set (gca, 'YGrid', 'off')

end

end

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ нСдоступной послС Π²Ρ‹Π²ΠΎΠ΄Π° Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

set (hObject, 'Enable', 'off')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ доступной

set (handles.btnClear, 'Enable', 'on')

% ΠŸΡƒΠ½ΠΊΡ‚ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ->ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.mnGraphPlot,'Enable','off')

% ΠŸΡƒΠ½ΠΊΡ‚ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ->ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.mnGraphClear,'Enable','on')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.rbMarkcirc,'Enable','on')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.rbMarkSq,'Enable','on')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.rbMarkNone,'Enable','on')

% Бписок Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.pmColor,'Enable','on')

% Π‘ΠΊΡ€ΠΎΠ»Π»Π±Π°Ρ€ Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.scrWidth,'Enable','on')

% Π—Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° ΠΈΠ· Ρ‚Скстового поля

title (get (handles.editTitle,'String'))

% —————————————————————————————————-;

function btnClear_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π²ΠΎΠ΄ΠΈΠΌ Π΄ΠΈΠ°Π»ΠΎΠ³ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ

button = questdlg ('ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ оси?','mygui');

% Если Π²Ρ‹Π±Ρ€Π°Π½ΠΎ «Yes»

if strcmp (button, 'Yes')

% очистка осСй

cla

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ нСдоступной послС очистки осСй

set (hObject, 'Enable', 'off')

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΡ‚Π°Ρ‚ΡŒ доступной

set (handles.btnPlot, 'Enable', 'on')

% Π£Π±ΠΈΡ€Π°Π΅ΠΌ сСтку

set (gca, 'XGrid', 'off')

set (gca, 'YGrid', 'off')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.rbMarkcirc,'Enable','off')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.rbMarkSq,'Enable','off')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.rbMarkNone,'Enable','off')

% Бписок Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.pmColor,'Enable','off')

% Π‘ΠΊΡ€ΠΎΠ»Π»Π±Π°Ρ€ Π’ΠΎΠ»Ρ‰ΠΈΠ½Π° Π»ΠΈΠ½ΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.scrWidth,'Enable','off')

% Π£Π±ΠΈΡ€Π°Π΅ΠΌ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Π³Ρ€Π°Ρ„ΠΈΠΊΠ°

title ('')

% ΠŸΡƒΠ½ΠΊΡ‚ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ->ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ доступным

set (handles.mnGraphPlot,'Enable','on')

% ΠŸΡƒΠ½ΠΊΡ‚ мСню Π“Ρ€Π°Ρ„ΠΈΠΊ->ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΡ‚Π°Ρ‚ΡŒ нСдоступным

set (handles.mnGraphClear,'Enable','off')

end

% —————————————————————————————————-;

function chbxGridx_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function chbxGridY_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function chbxGridX_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function rbMarkcirc_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ

set (handles.line, 'Marker', 'o')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkSq, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkNone, 'Value', 0)

% —————————————————————————————————-;

function rbMarkSq_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΌΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΠ²Π°Π΄Ρ€Π°Ρ‚Ρ‹

set (handles.line,'Marker','s')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkcirc, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkNone, 'Value', 0)

% —————————————————————————————————-;

function rbMarkNone_Callback (hObject, eventdata, handles)

% УстанавливаСм ΠΎΡ‚Ρ‚ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½ΠΈΠ΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠ° Π±Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ²

set (handles.line,'Marker','none')

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ ΠœΠ°Ρ€ΠΊΠ΅Ρ€Ρ‹-ΠΊΡ€ΡƒΠ³ΠΈ Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkcirc, 'Value', 0)

% ΠŸΠ΅Ρ€Π΅ΠΊΠ»ΡŽΡ‡Π°Ρ‚Π΅Π»ΡŒ Π‘Π΅Π· ΠΌΠ°Ρ€ΠΊΠ΅Ρ€ΠΎΠ² Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±Ρ‹Ρ‚ΡŒ Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½

set (handles.rbMarkSq, 'Value', 0)

% —————————————————————————————————-;

function pmColor_CreateFcn (hObject, eventdata, handles)

if ispc

set (hObject,'BackgroundColor','white');

else

set (hObject,'BackgroundColor', get (0,'defaultUicontrolBackgroundColor'));

end

% —————————————————————————————————-;

function pmColor_Callback (hObject, eventdata, handles)

Num=get (hObject, 'Value');

switch Num

case 1

% УстанавливаСм синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','b');

case 2

% УстанавливаСм красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','r');

case 3

% УстанавливаСм Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line, 'Color','g');

end

% —————————————————————————————————-;

function scrWidth_CreateFcn (hObject, eventdata, handles)

usewhitebg = 1;

if usewhitebg

set (hObject,'BackgroundColor',[.9 .9 .9]);

else

set (hObject,'BackgroundColor', get (0,'defaultUicontrolBackgroundColor'));

end

% —————————————————————————————————-;

function scrWidth_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡƒΡ‡Π°Π΅ΠΌ Ρ‚Π΅ΠΊΡƒΡ‰Π΅Π΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ скроллбара

w = get (hObject,'Value');

% УстанавливаСм Π² ΠΊΠ°Ρ‡Π΅ΡΡ‚Π²Π΅ Ρ‚ΠΎΠ»Ρ‰ΠΈΠ½Ρ‹ Π»ΠΈΠ½Π΅Π΅ ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½Π½ΠΎΠ΅ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ скроллбара

set (handles.line,'LineWidth', round (w));

% —————————————————————————————————-;

function editTitle_CreateFcn (hObject, eventdata, handles)

if ispc

set (hObject,'BackgroundColor','white');

else

set (hObject,'BackgroundColor', get (0,'defaultUicontrolBackgroundColor'));

end

% —————————————————————————————————-;

function editTitle_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function mnGraph_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function mnGraphPlot_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ

btnPlot_Callback (hObject, eventdata, handles)

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ нСдоступна

set (handles.btnPlot,'Enable','off')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ доступна

set (handles.btnClear,'Enable','on')

% —————————————————————————————————-;

function mnGraphClear_Callback (hObject, eventdata, handles)

% Π’Ρ‹Π·Ρ‹Π²Π°Π΅ΠΌ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊ наТатия ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ

btnClear_Callback (hObject, eventdata, handles)

% Кнопка ΠŸΠΎΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ доступна

set (handles.btnPlot,'Enable','on')

% Кнопка ΠžΡ‡ΠΈΡΡ‚ΠΈΡ‚ΡŒ Π΄ΠΎΠ»ΠΆΠ½Π° Π±Ρ‹Ρ‚ΡŒ нСдоступна

set (handles.btnClear,'Enable','off')

% —————————————————————————————————-;

function cmLine_Callback (hObject, eventdata, handles)

% —————————————————————————————————-;

function cmLineBlue_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

% УстанавливаСм синий Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line,'Color', 'b')

% ИзмСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π½Π° «ΡΠΈΠ½ΠΈΠΉ»

set (handles.pmColor, 'Value', 1)

% —————————————————————————————————-;

function cmLineRed_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

% УстанавливаСм красный Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line,'Color', 'r')

% ИзмСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π½Π° «ΠΊΡ€Π°ΡΠ½Ρ‹ΠΉ»

set (handles.pmColor, 'Value', 2)

% —————————————————————————————————-;

function cmLineGreen_Callback (hObject, eventdata, handles)

% ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Ρ‹Π±Ρ€Π°Π» Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π² ΠΊΠΎΠ½Ρ‚Скстном мСню

% УстанавливаСм Π·Π΅Π»Π΅Π½Ρ‹ΠΉ Ρ†Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ

set (handles.line,'Color', 'g')

% ИзмСняСм Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ списка Π¦Π²Π΅Ρ‚ Π»ΠΈΠ½ΠΈΠΈ Π½Π° «Π·Π΅Π»Π΅Π½Ρ‹ΠΉ»

set (handles.pmColor, 'Value', 3)

1. АнуфриСв И. Π•. Π‘Π°ΠΌΠΎΡƒΡ‡ΠΈΡ‚Π΅Π»ΡŒ Matlab 5.3/6.x — БПб.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2003.-736с.: ΠΈΠ».

2. Π’. П. Π”ΡŒΡΠΊΠΎΠ½ΠΎΠ² MATLAB 6.5 SPI/7 + Simulink 5/6 Π² ΠΌΠ°Ρ‚Π΅ΠΌΠ°Ρ‚ΠΈΠΊΠ΅ ΠΈ ΠΌΠΎΠ΄Π΅Π»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΠΈ. БСрия «Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° профСссионала». — Πœ.: Π‘ΠžΠ›ΠžΠ-ΠŸΡ€Π΅ΡΡ, 2005. — 576 с.: ΠΈΠ».

3. АнуфриСв И. Π•., Π‘ΠΌΠΈΡ€Π½ΠΎΠ² А. Π‘., Π‘ΠΌΠΈΡ€Π½ΠΎΠ²Π° Π•. Н. MathLab 7. — Π‘Пб.: Π‘Π₯Π’-ΠŸΠ΅Ρ‚Π΅Ρ€Π±ΡƒΡ€Π³, 2005. — 1104 с.: ΠΈΠ».

Π‘ΠžΠ—Π”ΠΠΠ˜Π• Π“Π ΠΠ€Π˜Π§Π•Π‘ΠšΠžΠ“Πž Π˜ΠΠ’Π•Π Π€Π•Π™Π‘Π ΠŸΠžΠ›Π¬Π—ΠžΠ’ΠΠ’Π•Π›Π― Π’ MATLAB ΠœΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‡Π΅ΡΠΊΠΈΠ΅ указания ΠΊ Π»Π°Π±ΠΎΡ€Π°Ρ‚ΠΎΡ€Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Π΅ ΠΏΠΎ Π΄ΠΈΡΡ†ΠΈΠΏΠ»ΠΈΠ½Π΅ «ΠΠ²Ρ‚оматизация ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€Π½Ρ‹Ρ… вычислСний» / сост. И. А. Π‘Π΅Π»ΠΈΠ²Π°Π½ΠΎΠ²Π°. Π•ΠΊΠ°Ρ‚Π΅Ρ€ΠΈΠ½Π±ΡƒΡ€Π³: Π“ΠžΠ£ Π’ΠŸΠž Π£Π“Π’-УПИ, 2006. 34 с.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ