WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Messwerte aus Spalten vergleichen

 

FredVIW
Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 31.05.2020, 17:01     Titel: Messwerte aus Spalten vergleichen
  Antworten mit Zitat      
Hallo liebe Community,

ich habe zwei Vektoren (Vektor A zeigt die Kraft [kN], Vektor B zeigt den Weg [mm] mit folgenden Werten:
Vektor A:
Code:

9.27413082122803
9.27478694915772
9.27403545379639
9.27342224121094
9.27410697937012
9.27496528625488
9.27458381652832
9.27425670623779
9.27603816986084
9.27518653869629
9.27509689331055
9.27568054199219
9.27556133270264
9.27506065368652
9.27466201782227
9.27565097808838
9.27631282806397
9.27616405487061
9.27681350708008
9.27672386169434
9.27649116516113
9.27664661407471
9.27670574188232
9.27540111541748
9.27651500701904
9.27631282806397
9.27547264099121
9.27675342559815
9.27736759185791
9.27734947204590
9.27636623382568
9.27568721771240
9.27687263488770
9.27647399902344
9.27749919891357
9.27649784088135
9.27529335021973
9.27612209320068
9.27595520019531
9.27619934082031
9.27680110931397
9.27630710601807
9.27653884887695
9.27667045593262
9.27868461608887
9.27723026275635
9.27603816986084
9.27677154541016
9.27745723724365
9.27754020690918
9.27824974060059
9.27792835235596
9.27714157104492
9.27698040008545
9.27820777893066
9.27776718139648
9.27907276153565
9.27940654754639
9.27737331390381
9.27818393707275
9.27948951721191
9.27752304077148
9.27802944183350
9.27810096740723
9.27822589874268
9.27891731262207
9.27839851379395
9.27895927429199
9.27692699432373
9.27831554412842
9.27979946136475
9.27844047546387
9.27986526489258
9.27814865112305
9.27932262420654
9.27921581268311
9.27880382537842
9.27801132202148
9.27860164642334
9.27939414978027
9.27833366394043
9.27847671508789
9.27938842773438
9.27854824066162
9.28031826019287
9.27935218811035
9.27925109863281
9.28005027770996
9.27966880798340
9.27941799163818
9.27999019622803
9.27816009521484
9.27972793579102
9.28221321105957
9.28263664245606
9.28123569488525
9.28229141235352
9.27964496612549
9.27956104278565
9.27950763702393
9.28052043914795
9.28078937530518
9.28030586242676
9.28032398223877
9.28193950653076
9.28091430664063
9.28169536590576
9.28207015991211
9.28083705902100
9.28122997283936
9.28285694122315
9.28120613098145
9.28437137603760
9.28211784362793
9.28222560882568
9.28415679931641
9.28447246551514
9.28382301330566
9.28456783294678
9.28213596343994
9.28406143188477
9.28273773193359
9.28482437133789
9.28394222259522
9.28355503082275
9.28500270843506
9.28446102142334
9.28330993652344
9.28506851196289
9.28179073333740
9.28363800048828
9.28342342376709
9.28345966339111
9.28187942504883
9.28350067138672
9.28462791442871
9.28471660614014
9.28382301330566
9.28525352478027
9.28331661224365
9.28498554229736
9.28520584106445
9.28663635253906
9.28640937805176
9.28780460357666
9.28666019439697
9.28767967224121
9.28580188751221
9.28652858734131
9.28516960144043
9.28894329071045
9.28677368164063
9.28826904296875
9.28823947906494
9.28524112701416
9.28525924682617
9.28843021392822
9.28587913513184
9.28856182098389
9.28682136535645
9.28657627105713
9.28571224212647
9.28780460357666
9.28595066070557
9.28721427917481
9.28936004638672
9.28975391387940
9.28645706176758
9.28893661499023
9.28805446624756
9.29057598114014
9.28834724426270
9.28838825225830
9.28785228729248
9.28935432434082
9.28758430480957
9.28934860229492
9.28853130340576
9.29219150543213
9.28973579406738
9.29078483581543
9.29062366485596
9.28936004638672
9.28812026977539
9.29097557067871
9.28839492797852
9.29071331024170
9.28856182098389
9.29023647308350
9.28829956054688
9.29110050201416
9.28864479064941
9.28876399993897
9.29048633575440
9.29192352294922
9.28948497772217
9.29222679138184
9.28867435455322
9.29127311706543
9.28982543945313
 


und Vektor B:
Code:

0.0205566406248181
0.0120117187498181
0.0177734375001819
0.00468749999981810
0.0109375000001819
0.000439453125181899
0.0543945312501819
0.0805175781251819
0.0438964843751819
0.0600097656251819
0.0763671875001819
0.0819824218751819
0.0751464843751819
0.109814453125182
0.123974609375182
0.122509765625182
0.136181640625182
0.130322265625182
0.154736328125182
0.149365234375182
0.147412109375182
0.187939453125182
0.212841796875182
0.192333984375182
0.176708984375182
0.216015625000182
0.242382812500182
0.262890625000182
0.216259765625182
0.254345703125182
0.308789062500182
0.273144531250182
0.317089843750182
0.338085937500182
0.337597656250182
0.353955078125182
0.371044921875182
0.413037109375182
0.462597656250182
0.440625000000182
0.381298828125182
0.406933593750182
0.404980468750182
0.426464843750182
0.438427734375182
0.384228515625182
0.437939453125182
0.478955078125182
0.467724609375182
0.465527343750182
0.497998046875182
0.533398437500182
0.481152343750182
0.467480468750182
0.500195312500182
0.488720703125182
0.572949218750182
0.565625000000182
0.516308593750182
0.580029296875182
0.550732421875182
0.583203125000182
0.647656250000182
0.628125000000182
0.609570312500182
0.623242187500182
0.644238281250182
0.649121093750182
0.671093750000182
0.668164062500182
0.676708984375182
0.710400390625182
0.715283203125182
0.714306640625182
0.698925781250182
0.720166015625182
0.788769531250182
0.792675781250182
0.774609375000182
0.803417968750182
0.808300781250182
0.785107421875182
0.766796875000182
0.789257812500182
0.822460937500182
0.799267578125182
0.822460937500182
0.824658203125182
0.806347656250182
0.833935546875182
0.846875000000182
0.902050781250182
0.901318359375182
0.895458984375182
0.962841796875182
0.976025390625182
0.972607421875182
0.974072265625182
0.997265625000182
0.987255859375182
0.971630859375182
1.02607421875018
1.08369140625018
1.11176757812518
1.07685546875018
1.02387695312518
1.03925781250018
1.10078125000018
1.11860351562518
1.08540039062518
1.09028320312518
1.08149414062518
1.07685546875018
1.13203125000018
1.12031250000018
1.16376953125018
1.16083984375018
1.12690429687518
1.15302734375018
1.17719726562518
1.22529296875018
1.21821289062518
1.24506835937518
1.25825195312518
1.25190429687518
1.25849609375018
1.29096679687518
1.32807617187518
1.30708007812518
1.24311523437518
1.28706054687518
1.30781250000018
1.33271484375018
1.39497070312518
1.36298828125018
1.36494140625018
1.39301757812518
1.46015625000018
1.43549804687518
1.41132812500018
1.46113281250018
1.43769531250018
1.43037109375018
1.43452148437518
1.47358398437518
1.48994140625018
1.50312500000018
1.47919921875018
1.43842773437518
1.45649414062518
1.50849609375018
1.55122070312518
1.54853515625018
1.56293945312518
1.55195312500018
1.54560546875018
1.59785156250018
1.62763671875018
1.62446289062518
1.60004882812518
1.60151367187518
1.64179687500018
1.68305664062518
1.70673828125018
1.70405273437518
1.69843750000018
1.71357421875018
1.72358398437518
1.70527343750018
1.71967773437518
1.74262695312518
1.73481445312518
1.79389648437518
1.78144531250018
1.77753906250018
1.84199218750018
1.77485351562518
1.75874023437518
1.82539062500018
1.81464843750018
1.83540039062518
1.82758789062518
1.82246093750018
1.87446289062518
1.83710937500018
1.85590820312518
1.91450195312518
1.94794921875018
1.97065429687518
1.91718750000018
1.93793945312518
1.96748046875018
1.95063476562518
2.00043945312518
1.97114257812518
1.98505859375018
2.06245117187518
2.02656250000018
2.03828125000018
2.08979492187518
 


Die Werte sind messtechnisch erfasst und endlos lang, deshalb hier nur ein kleiner Ausschnitt.

Ich möchte den Vektor B in einer Schrittfolge von 0:1:750 [mm] durchlaufen und den Wert im Vektor B finden, der der 0, 1, 2 usw. bis 750 hin am nächsten kommt. Für diesen Wert möchte ich dann den zugehörigen Wert aus dem Vektor A ausgeben und beide in einem neuen File speichern. (Reduzierung der Messwerte)

Für mich ist nicht klar, wie ich die Annäherung an den Wert (0mm, 1mm, 2mm) codieren kann.

Gruß.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 10:54     Titel:
  Antworten mit Zitat      
Hallo,

Vorschlag: B sortieren ( sort ) und A entsprechend umordnen, dann interp1 mit Option "neareast".

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FredVIW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2020, 11:13     Titel:
  Antworten mit Zitat      
Hallo Harald,

das Sortieren der Werte leuchtet mir ein. Wie lassen sich aber die entsprechenden Werte aus "A" dann den sortierten Werten zuordnen?

Grüße
FRED
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 12:15     Titel:
  Antworten mit Zitat      
Hallo,

zweites Rückgabeargument verwenden.
Code:
[B, idx] = sort(B);
A = A(idx);


Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FredVIW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2020, 13:38     Titel:
  Antworten mit Zitat      
Vielen Dank, Harald.
Ich habe es zuvor schon in einer anderen Frage im Forum gesehen.

Bei der Interpolation mit interp1 treten aber Fehlermeldungen bei folgendem Code auf:
Code:

x = B;
v = A;
xq = 0:1:750;
vq = interp1(x, v, xq,  'nearest');
 


Error using griddedInterpolant
The grid vectors must contain unique points.

Error in interp1 (line 151)
F = griddedInterpolant(X,V,method);

Error in relaxation (line 15)
vq = interp1(x, v, xq, 'nearest');
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 14:56     Titel:
  Antworten mit Zitat      
Hallo,

die Fehlermeldung ist ja recht klar: du hast augenscheinlich mehrere B-Werte, eventuell mit unterschiedlichen A-Werten. Was willst du nun mit diesen machen?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FredVIW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2020, 15:08     Titel:
  Antworten mit Zitat      
Hallo Harald,

Im Grunde suche ich im Vektor B die Werte, die exakt 0mm, 1mm (in dieser Schrittfolge bis 750mm) betragen. jeder Millimeter soll abgefragt werden. Da das aber meist nicht der Fall ist (aufgrund der hohen Abtastrate) will ich den Wert finden, der zu exakt 0mm, 1mm usw. bis 750mm stets den geringsten Abstand aufweist und diesem den zugehörigen Wert aus Vektor A zuordnen.


Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 15:14     Titel:
  Antworten mit Zitat      
Hallo,

das ist mir klar, aber keine Antwort auf meine Frage.

Anders gefragt: wenn der nächstgelegene B-Wert zu 1mm 0.99999 wäre und du aber zwei Werte dazu hast
0.99999 2
0.99999 3
welchen willst du dann nehmen?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FredVIW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2020, 15:33     Titel:
  Antworten mit Zitat      
Hallo Harald,

okay, jetzt verstehe ich.
Ich würde dann den ersten nehmen (0.99999 2).

Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 16:21     Titel:
  Antworten mit Zitat      
Hallo,

dann kannst du die doppelten herauslöschen. Nach dem Sortieren und vor dem Interpolieren:
Code:
doppelt = [false; diff(B) == 0];
B(doppelt) = [];
A(doppelt) = [];


Ein Gedanke: in der Form ist das natürlich sehr anfällig gegenüber Ausreißern. Wäre es nicht sinnvoll, die Werte, die gerundet ein gewisses Maß ergeben zu mitteln (z.B. nach Entfernung gewichtet)?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
FredVIW
Themenstarter

Forum-Anfänger

Forum-Anfänger


Beiträge: 19
Anmeldedatum: 08.05.20
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2020, 16:31     Titel:
  Antworten mit Zitat      
Grüß dich Harald,

dein Code funktioniert - vielen Dank. Smile

Zu deiner Frage:
Meinst du, man rundet alle Werte auf zwei Stellen nach dem Komma?


Grüße!
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.448
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 01.06.2020, 17:57     Titel:
  Antworten mit Zitat      
Hallo,

Zitat:
man rundet alle Werte auf zwei Stellen nach dem Komma?

Die Genauigkeit ist dir überlassen.
Schau dir mal einen Plot der gesamten Daten an und wie stark das schwankt? Bekommst du mit der bisherigen Vorgehensweise Werte, die das vernünftig widerspiegeln?

Grüße,
Harald
_________________

1.) Ask MATLAB Documentation
2.) Search gomatlab.de, google.de or MATLAB Answers
3.) Ask Technical Support of MathWorks
4.) Go mad, your problem is unsolvable ;)
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2024 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.