Oceń w MATLAB

Oceń w MATLAB
W tym artykule wyjaśniono, jak korzystać z funkcji eval () w MATLAB.

Ta funkcja może być doskonałym narzędziem, ale jej użycie powinno być zarezerwowane w wyjątkowych przypadkach. Jeśli to możliwe, należy wybrać alternatywne opcje, ponieważ ich użycie może powodować kilka niedogodności i problemów podczas wykonywania.

Below, we take a detailed look at the syntax, input and output arguments, and the data this function accepts. Znajdziesz także szczegółowy opis tej funkcji i jej rozwiązań, z fragmentami kodu i obrazów wyjaśniających, jak go używać krok po kroku.

Składnia funkcji oceny MATLAB

eval („exp”)

Opis funkcji oceny MATLAB

Funkcja oceny Matlaba ocenia dane wyrażenie w „exp” i zwraca wynik „a”. Koncepcyjnie funkcja eval () konwertuje tekst wpisany w ciąg wejściowy w kod, który wykonuje i zwraca wyniki. Ta funkcja zapewnia doskonałą elastyczność, ponieważ pozwala na wiele wyników wyjściowych, a jej argumenty wejściowe mogą oceniać wyrażenia i funkcje z biblioteki MATLAB i tych utworzonych przez programistę. Argument wejściowy do tej funkcji musi być ciągiem zawierającym jawne wyrażenie wyrażenia, które ma zostać ocenione lub domyślnie przez wektor znaków. Kiedy wywoływamy funkcję eval () z wyrażeniami, które zwracają wiele wyników, muszą być one zamknięte w nawiasach kwadratowych i oddzielone przecinkami.

Podczas korzystania z eval () do oceny wyrażeń lub funkcji, które nie są wcześniej określone przez programistę, pamiętaj, że wszystko wprowadzone jako ciąg staje się częścią kodu. Niewłaściwe obsługa tego wejścia może prowadzić do błędów lub wyjątków.

W poniższych przykładach ocenimy różne funkcje i wyrażenia wejściowe za pomocą funkcji eval (. Pokazamy również obejścia, które pozwalają osiągnąć te same wyniki bez użycia tej funkcji, która zapewnia obejścia i jest bardzo elastyczne. Może to jednak prowadzić do znacznych wad.

Jak ocenić proste wyrażenie za pomocą funkcji Matlab Eval ()

Następnie zobaczymy kilka prostych przykładów, w których zaimplementujemy funkcję oceny, aby ocenić wyrażenia lub wywołania prostych funkcji. Poniższy fragment ocenia wyrażenie podziału przez B.

a = 23;
B = 5;
eval ('a ./ B' )


W takim przypadku eval () zwraca wynik podziału przez b.


W poniższym fragmencie eval () ocenia wyrażenie, które wykorzystuje funkcję biblioteki MATLAB do tworzenia szeregu tych:

a = 5;
eval („one (a)”)


To najprostsze sposoby korzystania z funkcji. Jak widzimy, znak ciągu wysyłamy do argumentów wejściowych, jest konwertowany na wiersze kodu wykonane w celu zwrócenia wyniku.


Następnie utworzymy aplikację, która ocenia wyrażenia i wyświetli wyniki na ekranie.

Zastosowanie do oceny wyrażeń z funkcją oceny MATLAB

W tym przykładzie utworzymy prostą aplikację konsoli do oceny wyrażeń z Ass Eval (). To proste narzędzie może szybko przeanalizować i ocenić wyrażenia, które określamy jako argumenty wejściowe podczas korzystania z tej funkcji. Ta aplikacja składa się z czterech wierszy kodu. Jest to nieskończona pętla, która najpierw używa funkcji wejściowej () do wprowadzenia ciągu, która będzie wyrażeniem do oceny. Ten ciąg jest wysyłany jako argument wejściowy do eval ().

Poniżej znajduje się kod tej aplikacji. Utwórz skrypt, wklej ten kod i naciśnij RUN. Następnie, w monicie, wpisz wyrażenie, które chcesz ocenić i naciśnij Enter. Pamiętaj, że eval () akceptuje tylko ciągi w swoich argumentach wejściowych, więc wyrażenia powinny być zamknięte w pojedynczych cytatach. Aby zamknąć aplikację, naciśnij Ctrl+C.

podczas 1
exp_1 = wejście („Wprowadź wyrażenie. Aby wyjść z aplikacji naciśnij Ctrl+C.');
eval (exp_1)
koniec


Jak pokazano na poniższym rysunku, ta aplikacja używa funkcji eval () i zwraca wynik wyrażenia, które wprowadzamy przez konsolę poleceń:

Ryzyko korzystania z funkcji eval () w MATLAB

Funkcja eval () oferuje interesujące aspekty pod względem elastyczności. Mimo to może również mieć kilka wad, które generują błędy, poważne wyjątki w systemie lub błędne wyniki, więc jego użycie powinno być ograniczone. Zamiast tego należy wdrożyć alternatywy, które zapewniają większe bezpieczeństwo i solidność.

Jak widzieliśmy w opisie i poprzednich przykładach, każdy tekst, który wprowadzamy w formie ciągu do argumentów wejściowych eval (), zostanie przekonwertowany na kod i wykonany, który jest koncepcyjnie interfejsem bramy lub wejściowym, aby wprowadzić polecenia użytkowników do już działającego programu. Musimy na to zwrócić szczególną uwagę, ponieważ jeśli zostawimy te drzwi otwarte, nie mamy kompletnej ani z góry określonej kontroli nad tym, co zostanie wykonane w naszym systemie w pewnym momencie. Ponadto wyrażenia mogą często kolidować z nazwami już zdefiniowanych zmiennych i powodować nieprawidłowe wyniki lub błędy systemu. Błędy te mogą również wystąpić z powodu niezgodności typów danych między zmiennymi ocenianych wyrażeń a zmiennymi zdefiniowanymi w programie.

Alternatywy dla funkcji oceny MATLAB

Istnieje kilka alternatyw, aby uniknąć korzystania z funkcji eval (). Jednym z nich jest utworzenie funkcji, która rozwiązuje wyrażenie zamiast oceny jej za pomocą eval (). Daje nam to możliwość pracy z już ustalonymi zmiennymi, a także kontrolować, jakie dane powinny zaakceptować zmienne tego wyrażenia, co zapobiega błędom lub wyjątkom.

Wniosek

W tym artykule pokazaliśmy, jak korzystać z funkcji eval (. Pokazaliśmy również niektóre z problemów, które mogą wynikać z korzystania z tej funkcji i alternatyw, które oferuje Matlab, aby osiągnąć ten sam wynik przy użyciu bardziej niezawodnych metod. Aby uzyskać lepsze wyjaśnienia, stworzyliśmy niektóre praktyczne przykłady zawierające fragmenty z kodu obrazu, które pokazują implementację tej funkcji w środowisku Matlab. Stworzyliśmy również praktyczną aplikację konsolową, której można użyć do przetestowania wyrażeń, których użyjemy jako argumenty wejściowe podczas wdrażania tej funkcji.