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

Matrix, Spalten durch Spaltenmaximum teilen

 

Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2012, 14:04     Titel: Matrix, Spalten durch Spaltenmaximum teilen
  Antworten mit Zitat      
Hallo Leute,

nun sitze ich hier und komme seit 2h nicht weiter. Folgendes Problem:

Eine Matrix, beliebige Grösse

A=[
1 2 3;
1 8 3;
9 2 -7]

Alle Elemente einer Spalte sollen durch die betragsmässig grösste Zahl der Spalte geteilt werden.

Ergebnis:
B=[
1/9 2/8 -3/7;
1/9 1 -3/7;
1 2/8 1 ]

das ganze am Besten so, dass es erkennt wie groß die Matrix ist und automatisch alles macht, danke schon mal im Voraus, mein Wissen ist hier am Ende

schönen Tag


Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 27.09.2012, 14:18     Titel:
  Antworten mit Zitat      
Code:
A=[
1 2 3;
1 8 3;
9 2 -7];
H = repmat(max(A),size(A,1),1);
B = A./H;


Vielleicht gibt es da schon eine Funktion in Matlab für, ansonsten sollte dir das hier weiterhelfen.

Viele Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast1

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 27.09.2012, 14:50     Titel:
  Antworten mit Zitat      
Hi,

Code:

bsxfun(@rdivide,A,(-1).^(~(max(A)==max(abs(A)))).*max(abs(A)))
 


@ nras, du teilst durch nicht durch das betragsmäßig größte
 
Nras
Forum-Meister

Forum-Meister


Beiträge: 608
Anmeldedatum: 21.02.12
Wohnort: ---
Version: 7.12.0.635 (R2011a)
     Beitrag Verfasst am: 27.09.2012, 15:04     Titel:
  Antworten mit Zitat      
Hallo,

das stimmt. Das habe ich überlesen und du hast es gelöst.
Für meine Lösung würde das bloß bedeuten:

Code:
A=[
1 2 3;
1 8 3;
9 2 -7];
H = repmat((-1).^(~(max(A)==max(abs(A)))).*max(abs(A)),size(A,1),1);
B = A./H


zu benutzen. Oder eben direkt der von dir genannte Weg.

Beste Grüße
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 28.09.2012, 09:44     Titel: Re: Matrix, Spalten durch Spaltenmaximum teilen
  Antworten mit Zitat      
Hallo,

Da sich dies anhört wie eine Hausaufgabe, wäre es sinnvoll, dass Du zeigst, was du bisher gemacht hast und erklärst, wo die Schwierigkeiten liegen.
Du könntest ja die hier gezeigten Lösungen nicht abgeben ohne zu Schummeln. Lehrer und Dozenten kennen dieses Forum ebenfalls, und sie werden es nicht weiterempfehlen, wenn hier Hausaufgaben gelöst werden.

Zunächst würde ich die Aufgaben in Teile zerlegen:
1. Finde das betragsgrößte Element
2. Dividiere die Matrix.

Beim MAX Befehl muss man aufpassen, da er bei Matrizen zwar üblicherweise auf den Spalten operiert, aber die Aufgabenstellung lautet ja "beliebige" Matrizen. Für eine [1 x N] Matrix, also einen Zeilenvektor, bestimmt "max(A)" aber das Maximum der Zeile. Also: Mit "max(A, [], 1)" explizit die Dimension angeben.
Eine [0 x N]-Matrix gilt übrigens auch als "beliebig".

Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Gast



Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 28.09.2012, 13:11     Titel:
  Antworten mit Zitat      
Hi Leute,

schon mal vielen Dank für eure Hilfe, trotzdem bin ich auf keinen grünen Zweig in Matlab gekommen. Ich habe die Daten dann in Excel importiert und da mit min,max und if funktion das ganz einfach hingebekommen. Ist zwar unschön aber funktioniert.

Das Ergebnis normiert einen Eigenfrequenzvektor, sodass die größte Auslenkung 100% beträgt. Ist nicht für die Schule Wink
 
coool12
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 10.12.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 10.12.2012, 08:16     Titel:
  Antworten mit Zitat      
nice posst i like........
_________________

coool
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 - 2025 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.