2015-09-14 18 views
8

Próbuję poprawić czytelność moich wyników. Aby uniknąć wyświetlania dużej ilości danych, byłoby miło wyświetlać odsyłacze wskazujące określone elementy w obszarze roboczym (tj. Zmienną, tabelą, cyfrą itp.).MATLAB wyświetla łącze do elementów obszaru roboczego

Oto obraz, aby zilustrować ideę:

enter image description here

Może możemy użyć funkcji disp, ponieważ wiem, że pozwala na generowanie linków do strony internetowej lub pliku przechowywanego w komputerze.

Czy to możliwe w MATLAB?

+0

„Staram się poprawić czytelność moich wyjść” - może jestem staroświecki, ale dlaczego nie jest 'fprintf()' i trochę wysiłku programistycznego z twojej strony wystarczająco dobrego? – IKavanagh

+0

@IKavanagh Dzięki za sugestię, ale chcę, aby element był otwarty w oknie MATLAB. Wiem, że mógłbym stworzyć plik z ouput, zapisać go, a następnie utworzyć hiperlink, ale to nie jest idea ... – mat

+0

@mat 'fprintf (1, ...)' wyświetli się w oknie poleceń MATLAB. Osobiście po prostu nigdy nie używam GUI MATLABa, to jest to, do czego dążyłem. – IKavanagh

Odpowiedz

12

OK, więc to właśnie wymyśliłem. Pierwszą rzeczą jest użycie funkcji openvar i podanie zmiennej, którą chcesz zawinąć w pojedyncze cytaty. Spowoduje to otwarcie zmiennej w edytorze zmiennych (obraz, który jest przedstawiony w migawce).

Teraz można również użyć dispto allow clickable links to run MATLAB commands. Używając tych dwóch pomysłów, połączysz łączenie disp i openvar, aby umożliwić klikalnym łączom wykonanie funkcji openvar w celu wyświetlenia żądanej zmiennej.

Jako takie, jakich można w zasadzie zrobić to przy założeniu, że nasza zmienna jest przechowywany w A:

A = magic(5); 
disp('<a href="matlab:openvar(''A'')">Click on me to show the matrix A</a>') 

Oświadczenie disp pokaże klikalny link, a następnie żądaną funkcję być wykonywane tylko biegnie po kliknięciu na połączenie. Ten pożądany efekt można osiągnąć, określając słowo kluczowe wewnątrz adresu URL w kluczu href, a następnie wypiszesz dowolną funkcję lub instrukcje MATLAB, których chcesz użyć. W naszym przypadku używamy tylko jednej funkcji, a to jest openvar. Upewnij się, że podajesz pojedyncze cudzysłowy wokół zmiennej, która ma być wewnątrz argumentu, do openvar. Powodem jest to, że argumentem dla disp jest ciąg znaków, a jeśli chcesz, aby pojedyncze oferty były rozpoznawane, musisz użyć pary pojedynczych cudzysłowów. Jako takie, w ciągu disp istnieją pary pojedynczych cudzysłowów wokół wybranej zmiennej.

Oto, co dostaję w MATLAB. Kroki są reprodukowane i pokazano na animowanym GIF:

enter image description here

+2

Twoje odpowiedzi czasami mnie zadziwiają ... – IKavanagh

+1

Wow! Ulubione pytanie (odpowiedź!) Ręce w dół –

+1

@LuisMendo - Dzięki! : D To było interesujące pytanie do rozwiązania. Nauczyłem się dzisiaj czegoś nowego! – rayryeng

Powiązane problemy