Vinnaren i pepparkakshustävlingen!
2010-03-15, 19:41
  #1
Medlem
cpapas avatar
Hej!

Jag har ett script där jag gör en massa beräkningar och sedan plottar resultatet. I plotten markerar jag intressanta ställen , t ex min- och max-punkter, med sk. data cursors. Jag exporterar dessa data cursors till workspace och försöker att ta reda på datan men lyckas inte.

T ex om jag exporterar ett gäng cursors till variabeln foo så ser det ut på detta viset:
Kod:
>> foo

foo = 

1x22 struct array with fields:
    Target
    Position
    DataIndex

>> foo.Position


ans =

   1.0e+03 *

    5.6190    0.0804


ans =

   1.0e+03 *

    5.3820    0.0356


ans =

   1.0e+03 *

    4.5960    0.0285


ans =

   1.0e+03 *

    4.3640    0.1911

[klipp]

Det som jag vill ha ut är alla "y-värden" som finns i Position i structen foo (dvs alla värden i position 2 i alla ans). Hur gör jag detta på ett smidigt sätt?
Citera
2010-03-15, 19:50
  #2
Medlem
Zaxxons avatar
Oj, missförstod dig. Trodde du ville markera ett område (med ex. Brush).

Du kan väl indexera dem? Typ foo.Position(1,1,1) ger dig x för första markeringen och foo.Position(1,2,1) ger dig y för första merkeriingen.

foo.Position(1,1,2) och foo.Position(1,2,2) för 2a markeringen. Osv.?
__________________
Senast redigerad av Zaxxon 2010-03-15 kl. 19:59.
Citera
2010-03-15, 19:58
  #3
Medlem
cpapas avatar
Ok
Citera
2010-03-15, 20:00
  #4
Medlem
evolutes avatar
Om du exempelvis har
foo = struct('Position', [1 2;3 4;5 6], 'Target', [4 5])
så fås y-värdena med
foo.Position(:,2)
Citera
2010-03-15, 20:11
  #5
Medlem
cpapas avatar
Jag får felmeddelande av det:
Kod:
>> foo.Position(:,2)
??? Field reference for multiple structure elements that is followed by more
reference blocks is an error.
Citera
2010-03-15, 20:13
  #6
Medlem
cpapas avatar
Lösningen är:
Kod:
for i = 1:length(foo)
   foo(i).Position(2)

Då loopar jag över struct-arrayen och plockar ut alla intressanta värden!
Citera
2010-03-15, 20:13
  #7
Medlem
Zaxxons avatar
Lyckas fasen inte med att markera mer än 1 värde med "Data Cursor", hur gör man?
Citera
2010-03-15, 20:14
  #8
Medlem
cpapas avatar
Citat:
Ursprungligen postat av Zaxxon
Lyckas fasen inte med att markera mer än 1 värde med "Data Cursor", hur gör man?

Alt-klick eller högerklicka och välj "new data cursor" och klicka.
Citera
2010-03-15, 20:23
  #9
Medlem
Zaxxons avatar
Citat:
Ursprungligen postat av cpapa
Alt-klick eller högerklicka och välj "new data cursor" och klicka.
Aha, den andra "riktiga" Alt-knappen .

Ser nu att jag helt missuppfattade foo-structen.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback