Cookies op Tweakers

Tweakers is onderdeel van DPG Media en maakt gebruik van cookies, JavaScript en vergelijkbare technologie om je onder andere een optimale gebruikerservaring te bieden. Ook kan Tweakers hierdoor het gedrag van bezoekers vastleggen en analyseren. Door gebruik te maken van deze website, of door op 'Cookies accepteren' te klikken, geef je toestemming voor het gebruik van cookies. Wil je meer informatie over cookies en hoe ze worden gebruikt? Bekijk dan ons cookiebeleid.

Meer informatie
Toon posts:

[Matlab] Waardes uit array toewijzen aan variabelen

Pagina: 1
Acties:

Vraag


  • gop1
  • Registratie: oktober 2013
  • Laatst online: 12:52
Zijn er hier mensen bekend met Matlab?

Ik probeer de waardes uit een array (1 rij, variabel aantal kolommen) in variabelen op te slaan. Nu kan dit handmatig, maar het probleem is dat de afmeting van de array variabel is. Ik zou dus d.m.v. een for loop de waardes uit de array moeten toewijzen aan variabelen. De (naam van) de variabelen moet daarbij dus automatisch aangemaakt worden.
Voorbeeld:

Array A: [1 2 5 4] (in dit geval dus met een vast formaat)

for i = 1 : 1 : 4
Var(i) = A(i)
end

De bedoeling is dus dat er 4 variabelen zijn aangemaakt met de namen Var1, Var2, Var3 en Var4. Dit is echter niet wat er gebeurt, want het enige wat ik hiermee doe is dat de waarden uit de array A worden overgezet naar de array Var.

Iemand enig idee hoe ik dit kan doen?

Alle reacties


  • gop1
  • Registratie: oktober 2013
  • Laatst online: 12:52
DaQ schreef op donderdag 8 november 2018 @ 16:09:
Je kunt hiervoor 'assignin' (of 'evalin') gebruiken.

code:
1
2
3
4
A = [1 2 5 4]
for n = 1:4
    assignin('caller',"Var"+n,A(n))
end


Maar echt nette code zul je er niet door krijgen. Je kunt misschien beter (blijven) indexeren.
Dit werkt perfect, bedankt.
Enig idee hoe ik de gecreëerde variabelen vervolgens kan aanroepen (gegeven het feit dat het aantal variabel is)?

  • gop1
  • Registratie: oktober 2013
  • Laatst online: 12:52
bwerg schreef op donderdag 8 november 2018 @ 17:53:
De hele tijd alles gaan eval-en (of soortgelijke functies als assignin).

Maar is er een reden dat dit per sé zo moet? Het standaardadvies aan iedereen die begint met programmeren: gebruik nooit eval en soortgelijken (zoals assignin)*. Zonder eval is elke programmeertaal krachtig genoeg om een variabel aantal waarden te kunnen gebruiken, namelijk gewoon met arrays... Je kun al bij waarde n met A(n), dus waarom zou dat nog in een losse variabele moeten? ;)

*Er zijn vast uitzonderingen te bedenken, maar dan alleen als je de alternatieven goed genoeg kent om de voor- en nadelen af te wegen. Tot die tijd, niet doen.
Of het persé zo moet weet ik niet, maar ik wil de waarden in ieder geval kunnen weergeven. Het gaat in dit geval om het bepalen van de lengte van lijnen. De lijnen woorden gecreëerd door op een kaart te klikken (willekeurig aantal). Ik wil de totale lengte van de lijnen hebben en de lengte van de lijnen afzonderlijk.

Het is erg vergelijkbaar met de functie "afstand meten" in Google Maps

  • gop1
  • Registratie: oktober 2013
  • Laatst online: 12:52
@Orion84 en @bwerg Het programma is nog niet af, maar ik wil in een later stadium grafisch op de kaart gaan weergeven (plotten o.i.d.) wat de lengte van elke lijn is. Het leek me handig om daarvoor de maten alvast beschikbaar te hebben in variabelen, zodat deze eenvoudig opgeroepen kunnen worden. Maar wat jullie zeggen klinkt inderdaad logisch, de waarden zijn al beschikbaar en kunnen direct vanuit de array opgeroepen worden.
Pagina: 1


Apple iPad Pro (2021) 11" Wi-Fi, 8GB ram Microsoft Xbox Series X LG CX Google Pixel 5a 5G Sony XH90 / XH92 Samsung Galaxy S21 5G Sony PlayStation 5 Nintendo Switch Lite

Tweakers vormt samen met Hardware Info, AutoTrack, Gaspedaal.nl, Nationale Vacaturebank, Intermediair en Independer DPG Online Services B.V.
Alle rechten voorbehouden © 1998 - 2021 Hosting door True