Wpis z mikrobloga

@kobiaszu: Bo nie znasz wcale Matlaba. A dlaczego twoje (zwykłe) funkcje też nie widzą zmiennych z głównej przestrzeni roboczej? - bo każda funkcja ma własną przestrzeń roboczą! Nie tylko te z simulinka.
Jak chcesz żeby widziały możesz użyć globala o ile wiesz jak to się robi.
  • Odpowiedz
@Okcydent: Problem w tym, że w poprzednim Matlabie wszystko działało intuicyjnie i wystarczyło jak w workspace siedziało K = 100, to wszystkie bloczki w Simulinku widziały to K. Mam teraz 2015a i się pozmieniało. Pokazałbyś mi jak zadeklarowac je jako global?
  • Odpowiedz
@kobiaszu: Na pewno nie było tak jak mówisz. Funkcje to funkcje i mają własne zasady. W przypadku prostych bloczków dane w głównej przestrzeni roboczej wystarczy.

global a;
a = 100;
Trzeba rozbić na deklaracje i definicję.

w samej funkcji też trzeba napisać deklarację:
global a;
  • Odpowiedz
@kobiaszu: Cóż, jak widać Simulink odmawia wykonania tego.
Zatem będziesz musiał to obejść. Propozycje: (a) rozszerz liczbę wejść (b) zrób jeden ale wektorowy sygnał wejściowy - mux
  • Odpowiedz
@Okcydent: Przecież to będzie wyglądało komicznie przy większej ilości zmiennych...

Przedtem bez problemu to działało, a teraz te bloczki już nie zapisują się jako zwykły m-plik w katalogu projektu, ale siedzą w jakimś niedostępnym mi workspacie modelu simulinka
  • Odpowiedz
@kobiaszu: No niestety nie widzę innej metody. A można to zrobić schludnie. To znaczy stwórz sobie gdzieś na boku grupę stałych sczytujących z workspace wszystkie wrzuć na mux-a a muxa wrzuć na bloczek goto który jakoś nazwiesz. Jeśli będziesz potrzebował dostępu do funkcji to wrzucasz tylko bloczek from i z niego ciągniesz.
Te bloczki są dostępne w Signal Routing. Pozwalają Ci nie ciągnąć kilometrów kabli.
  • Odpowiedz
@Okcydent: Dzięki stary za tego linka, udało mi się ogarnąć te zmienne za pomocą bloczka "Data store memory". Faktycznie, miałes rację, bloczki w Martlabie nigdy nie widziały globalnych zmiennych bez tego typu zabiegów

Co nie oznacza, że jest to strasznie skomplikowany proces...
  • Odpowiedz