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 aus anderer Matrix erstellen

 

Praion
Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 10.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 03.12.2012, 15:15     Titel: Matrix aus anderer Matrix erstellen
  Antworten mit Zitat      
Grüße,

angenommen ich habe folgende Matrix A

1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7


und habe eine Matrix B

0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0

und diese Matrix B soll nach einem Befehl aber so aussehen

1 0 2 0
0 3 0 4
3 0 5 0
0 5 0 7

das ist eigentlich meine Frage, wie kann ich eine Matrix gezielt mit bestimmten (immer gleichen) Stellen einer anderen Matrix belegen?

um es ganz klar zu machen,
ich habe noch eine Matrix C die ebenso mit zero erstellt wurde. Die soll dann so aussehen

1 0 3 0
0 0 0 0
3 0 5 0
0 0 0 0

Danke für die Hilfe. Hab echt schon lange gesucht in Hilfen und im Internet aber bin nicht fündig geworden.
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.12.2012, 18:29     Titel:
  Antworten mit Zitat      
Hallo,

mir ist nicht klar, wie deine Matrix B entsteht. Insbesondere nicht, wieso rechts oben 2 und 4 stehen und nicht, wie ich erwartet hätte, 3 und 5.

Grundsätzlich kann man Elemente mit Zeilen-Spalten-Indizierung verändern:
Code:
B(zeile, spalte) = wert;


Dabei können zeile und spalte auch Vektoren sein. Alternativ lineare Indizierung:
Code:
B(element) = wert;

Hier wird ein Index verwendet, der spaltenweise gezählt wird.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Praion
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 4
Anmeldedatum: 10.11.12
Wohnort: Deutschland
Version: ---
     Beitrag Verfasst am: 03.12.2012, 19:28     Titel:
  Antworten mit Zitat      
Das war ein Schreib/Konzentrationsfehler....


Letztendlich suche ich einen Befehl der Quasi das macht

*Schreibe für B in der ersten,dritten,fünften... (etc.) Zeile, den Wert aus A der in der ersten,dritten,fünten Stelle der Spalte steht*

Irgendwie schwer zu formulieren aber Matlab muss doch irgendwie fähig sein das hinzubekommen.


(
Ich will aus den Pixelwerten eines Bayer Mosaikfilters einzelne Matritzen jeweils für nur die roten, grünen und blauen Pixel machen ohne das komplet per Hand machen zu müssen (ist immerhin eine 896x1068 Matrix)

Und so ein Filter ist ja so aufgebaut

R G
G B

(über das ganze Bild verteilt)
)
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.492
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 03.12.2012, 20:04     Titel:
  Antworten mit Zitat      
Hallo,

man könnte das so machen:

Code:
A = [1 2 3 4
2 3 4 5
3 4 5 6
4 5 6 7];
B = A;
B(1:2:end,2:2:end) = 0;
B(2:2:end,1:2:end) = 0
C = A;
C(2:2:end,:) = 0;
C(1:2:end,2:2:end) = 0


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Queandras
Forum-Anfänger

Forum-Anfänger


Beiträge: 11
Anmeldedatum: 16.03.12
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.12.2012, 21:22     Titel:
  Antworten mit Zitat      
Hab mal ein bisschen herumprobiert und würds mit einer schleife machen die du individuell einstellen kannst.

Code:

function versuch

A=[1 2 3 4;2 3 4 5;3 4 5 6;4 5 6 7];
 
 B=zeros(size(A));
 m=0;
 for i=1:size(A,1);
     n=0;
     for j=1:2;
         B(i,j+n+m)=A(i,j+n+m);
         n=n+1;
      end
     if m<1
         m=m+1;
     else
         m=m-1;
     end

     
 end
 


hoffe es hilft dir. Bei "m" musst du ein bisschen probieren wie es passen würd.

Mfg
Queandras
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.