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

Vektoren aus Matrix erstellen

 

NeuInMatlab

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 18.01.2009, 18:04     Titel: Vektoren aus Matrix erstellen
  Antworten mit Zitat      
Hallo,
ich habe folgendes Problem und würde mich über eure Hilfe sehr freuen.

Ich habe einen Zeilenvektor der länge 3000. Diesen soll ich in 1000 3-er Blöcke umschreiben die danach verändert werden sollen. z.b soll aus [1 0 1] ->
[0 1 0 1 1] werden. Allerdings darf ich keine Schleifen benutzen.
Habe mir folgendes gedacht: Den Vektor in ein Matrix mit 3 Zeilen und 1000 Spalten umwandeln. Danach die Spalten in einzelne Vektoren umwandeln und mittels switch-case in den 5-er Block umschreiben.

Vielen Dank für jede Hilfe,
MFG
Christian


Strauße
Forum-Fortgeschrittener

Forum-Fortgeschrittener


Beiträge: 57
Anmeldedatum: 07.11.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 10:27     Titel:
  Antworten mit Zitat      
Wieso darfst Du keine Schleifen benutzen und wie genau funktioniert die Umwandlung des 3x1-Vektors in den 5x1-Vektor? Also was soll da wie umgewandelt werden?
Also ohne ne for-Schleife, die das dann für jeden Vektor macht, wüsste ich jetzt nicht, wie das funktionieren soll...
Private Nachricht senden Benutzer-Profile anzeigen
 
apn
Forum-Anfänger

Forum-Anfänger


Beiträge: 25
Anmeldedatum: 04.12.08
Wohnort: Wolfsburg
Version: ---
     Beitrag Verfasst am: 19.01.2009, 11:14     Titel:
  Antworten mit Zitat      
Hi

für die erste Umwandlung schau dir mal den
Code:
Befehl an.
was danach passieren soll hab ih allerdings auch noch nicht verstanden.

lg, apn
Private Nachricht senden Benutzer-Profile anzeigen
 
NeuInMatlab

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 16:18     Titel:
  Antworten mit Zitat      
Hallo, danke für eure Hilfe. Hab mittlerweile rausbekommen wie ich es mache. Hier mein Programm:
x=randn(1,3000);
x=(x<0).*0+(x>0).*1; %Jetzt habe ich in x nur 1 oder 0 in zufälliger Reihenfolge stehen
A=zeros(3,1000);
A( : )=x; %Jetzt habe ich meine 3er-Blöcke in den Spalten
b=A'*[4 2 1]'; %Zur Gewichtung gedacht; z.B: wird aus[1 0 1]->5
b=b';
B=[1 0 1 1 0]'*(b==7)+[1 1 0 1 1]'*(b==6)+[0 0 1 0 0]'*(b==5)...
+[0 1 1 0 1]'*(b==4)+[1 0 0 1 0]'*(b==3)+[1 0 1 0 1]'*(b==2)...
+[0 0 0 1 1]'*(b==1)+[0 1 0 0 1]'*(b==0);
y=B( : )' % Nun habe ich mein x codiert in y stehen

Dies war eine alte Prüfungsaufgabe, bei der es Punktabzug für die Benutzung von Schleifen gab.
Trotzdem Danke für die Hilfe.
Mfg
Christian
 
dib0r
Forum-Guru

Forum-Guru


Beiträge: 413
Anmeldedatum: 09.05.08
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 19.01.2009, 18:44     Titel:
  Antworten mit Zitat      
Hallo,

Ich würde es so machen:
Code:
x = rand(1,3000); % Zufallssignal
x = round(x); % 0 und 1
A = reshape(x,3,1000); % in 3er Blöcke unterteilen
At = A';
klartxt = [0 0 0; 0 0 1; 0 1 0; 0 1 1; 1 0 0; 1 0 1; 1 1 0; 1 1 1]; % Originial
codtxt = [0 1 0 0 1; 0 0 0 1 1; 1 0 1 0 1; 1 0 0 1 0; 0 1 1 0 1; 0 0 1 0 0; 1 1 0 1 1; 1 0 1 1 0]; % Codiert

B = zeros(size(A,2),size(codtxt,2));
for i = 1:size(klartxt,1)
  B = B+ismember(At,klartxt(i,:),'rows')*codtxt(i,:); % finde Klartext und substituiere
end
Bt = B';


MfG
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.