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 zerlegen

 

otto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.11.2009, 13:40     Titel: Matrix zerlegen
  Antworten mit Zitat      
Hallo,

brauche dringend Hilfe.

ich habe eine große Matrix die ich in ungerade und gerade Zeilen mit einer Schleife zerlegt habe, d.h. ich habe jetzt zwei kleinere Matrizen. Jetzt möchte ich die kleinen Matrizen wieder zu einer großen machen, so das die Zeilen nacheinander ungerade (also 1) und gerade (2) usw. ergenben, also ich möchte die ungerade und gerade ineinander verschieben, so das es eine große Matrix ergibt.
Ich hoffe Ihr versteht mein Problem und könnt mir helfen.


Code:
%Hier ist mein Code:
n = (1:2:151); % ungerade Zeilen
m = (2:2:151); % gerade Zeilen
for i=1:length(n)
   for j=1:length(m)
         ungerade(i,:) = circshift(I(i,:),[0, -n(i)]); % verschiebung der Zeilen nach links
         gerade(j,:) = circshift(I(j,:),[0, m(j)]); % verschiebuung der Zeilen nach rechts
   end
end
B = [ungerade;gerade]


Vielen Dank!


denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 02.11.2009, 13:57     Titel:
  Antworten mit Zitat      
Hallo,
verstehe ich nicht was du erreichen möchtest.
Kannst es bitte noch mal erklären, auf kleinem Beispiel
z.B wir haben eine Matrix, was soll am Ende rauskommen?
Code:

A = [ 1 2 3; 4 5 6; 7 8 9; 10 11 12; 13 14 15]
 
Private Nachricht senden Benutzer-Profile anzeigen
 
derOli
Forum-Meister

Forum-Meister


Beiträge: 579
Anmeldedatum: 19.03.08
Wohnort: Leipzig
Version: 2010a
     Beitrag Verfasst am: 02.11.2009, 14:22     Titel:
  Antworten mit Zitat      
Hi, ich verstehe das Problem nicht ganz, kannst du ein lauffähiges Beispiel posten, mit dem gewünschten Ausgang?

Viele Grüße,

der Oli
Private Nachricht senden Benutzer-Profile anzeigen
 
otto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 02.11.2009, 15:16     Titel: Matrix zerlegen
  Antworten mit Zitat      
Hallo,

es hat sich schon erledigt, aber trozdem vielen Dank.

Gruß
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 03.11.2009, 10:35     Titel:
  Antworten mit Zitat      
Hallo,

du könntest wenigstens erklären wie du zu der Lösung gekommen bist und was das Problem war
Private Nachricht senden Benutzer-Profile anzeigen
 
otto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2009, 11:15     Titel: Matrix zerlegen
  Antworten mit Zitat      
oh, sorry, klar kann ich das machen.

ich wollte meine matrix in ungerade und gerade zeilen zerlegen, das hab ich auch gemacht und die zeilen nach links bzw. nach rechts verschieben,
Code:

ungerade(i,:) = circshift(I(i,:),[0, -n(i)]); % verschiebung der Zeilen nach links
gerade(j,:) = circshift(I(j,:),[0, m(j)]); % verschiebuung der Zeilen nach rechts

dadurch habe ich zwei kleinere matrizen bekommen.
jetzt wusste ich nicht wie ich die kleinen matrizen wieder zu einer großen matrix mache. die lösung war:
Code:
% n = (1:2:151); % ungerade Zeilen
% m = (2:2:151); % gerade Zeilen
% for i=1:length(n)
%     for j=2:length(m)
%         B(i,:) = circshift(I(i,:),[0, 1]); % verschiebung der Zeilen nach links
%         B(j,:) = circshift(I(j,:),[0, -1]); % verschiebuung der Zeilen nach rechts
%     end
% end
% B;


aber das ist auch alles quatsch!!!

meine eigetliche aufgabe ist:
ich habe messdaten (Matrix I 151x501), die natürlich nicht geändert werden dürfen, diese daten sind aber ungenau durch irgendwelche messfehler.
ich habe es als
Code:

dargestellt und durch die messfehler sieht das bild "pixelig" aus. das kann man mit inerpolation ändern, aber das verfällscht die messdaten, also ungeeignet.
Ich habe kein plan wie ich das lösen kann und ob es überhaupt möglich ist???
bin dankbar für vorschläge also falls du eine idee hast, her damit ;)

gruß
 
otto

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 03.11.2009, 12:01     Titel: Matrix zerlegen
  Antworten mit Zitat      
das ist der richtige code, in dem da oben ist noch ein fehler drin

Code:

for i=1:2:151
     for j=2:2:151
         B(i,:) = circshift(I(i,:),[0, -1]); % verschiebung der Zeilen nach links
         B(j,:) = circshift(I(j,:),[0, 1]); % verschiebuung der Zeilen nach rechts
     end
end
B;
 


aber wie gesagt, bringt mich auch nicht weiter
 
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.