Ich würde sehr appreciate, wenn Sie helfen. Ich bin Anfänger im Programmieren. Ich benutze Matlab. Also, ich habe ein Array vom Typ 431x1 - double; da habe ich die Nummern 1 bis 6; für zB: 1 4 5 3 2 6 6 3 3 5 4 1 ...; was ich tun möchte, ist, ich muss ein neues Array erstellen, wo ich jedes Element für 11 Mal wiederholen würde; für zB: a (1:11) = 1; a (12:22) = 4; a (23:33) = 5; oder anders zu illustrieren: a = [1 1 1 1 1 1 1 1 1 1 4 4 4 4 4 4 4 4 ...]; Ich habe versucht, es in einer Schleife zu tun, aber hatte einige Probleme, welchen Weg könnten Sie vorschlagen, kennen Sie irgendeine Funktion, die ich ausnutzen könnte?Matlab macht Wiederholungen von Daten von einem Array in ein anderes Array
Antwort
Zunächst einmal würde es helfen, wenn Sie Ihren Code ist separate Blöcke formatieren könnte Ihre Frage leichter zu lesen ...
Angenommen, Sie haben eine Reihe von Länge N × 1 wie gehabt:
x = [1 2 3 4 5 ...]';
Sie könnten eine Schleife konstruieren und verketten wie:
for i = 1 : length(x)
for i = 1: length(x)
y(1 + (i - 1) * 11 : 1 + i * 11) = x(i); % Copy to a moving block
end
y(end) = []; % Delete the superfluous one at the end
Sie auch Funktionen l aussehen könnte ike repmat
in der MATLAB-Hilfe zum Replizieren von Arrays.
danke! Ich versuchte auch mit repmat in einer Schleife, aber wieder hatte ich Probleme mit der richtigen Indizierung, um die replizierten Werte zu speichern; –
Versuchen Sie, diese (NRep
ist, wie oft Sie wollen, dass es wiederholt):
x = [1, 2, 3, 4, 5];
NRep = 5;
y = reshape(repmat(x,[NRep,1]),[1,length(x)*NRep])
Da es ein wenig umständlich ist, dass zu schreiben, habe ich auch besonders genießen, diese verwenden „Hack“:
x = [1, 2, 3, 4, 5];
NRep = 5;
y = kron(x, ones(1,NRep));
Hoffe, dass hilft!
S.S .: Dies ist nur für Zeilenvektoren gedacht. Wenn Sie jedoch Spaltenvektoren benötigen, können Sie diese leicht ändern.
bearbeiten: Natürlich, wenn Sie nach R2015a sind, können Sie einfach y=repelem(x,NRep)
verwenden. Ich tendiere dazu, diese zu vergessen, weil ich an älteren Matlabs arbeite (und manchmal ist es nicht so eine schlechte Idee, ein wenig abwärtskompatibel zu sein). Danke @ rahnema1 für die Erinnerung.
vielen dank !!! Dies ist die Repelem-Funktion, von der ich nicht wusste, dass sie genau das ist, was ich brauchte: D yayy, dein Code hat auch funktioniert, gibt die richtige Anzahl von Wiederholungen, aber das Problem war, dass er die ganze Sequenz 11 Mal wiederholt anstatt jedes Element 11 Mal zu replizieren; trotzdem vielen Dank! –
- 1. Kopieren von Array in ein anderes Array
- 2. PHP-Array Werte von einem Array in ein anderes zusammenführen
- 3. Senden von Daten von einem Array-Objekt in ein anderes Array-Objekt
- 4. Mit einem Zell-Array ein anderes erstellen
- 5. Nachschlagen von Daten in einem Array ein anderes Array zu bauen
- 6. ein Array ohne Wiederholungen in Winkel 2
- 7. MATLAB- Hinzufügen von Begriffen in einem Array
- 8. Kopieren von Objekten aus einem JSON-Array in ein anderes
- 9. Speichern ersetzten Wert in ein anderes Array von einem Objekt
- 10. Push-Array in ein anderes Array PHP
- 11. VBA - Daten von Array in einem anderen Array
- 12. Daten in Array lesen MATLAB
- 13. Art ein $ Array von ints durch Wiederholung und entfernen Wiederholungen
- 14. 'Array von Arrays' in Matlab?
- 15. Speichern von Blöcken von Vektordaten in ein Array in Matlab
- 16. Ein String-Array in ein anderes kopieren
- 17. Drucken ein Array-Element in ein anderes Array
- 18. Ein Array in einem Array?
- 19. Matlab: Array von Zahl in Array von Strings konvertieren
- 20. Daten von AWK in ein Array
- 21. Daten von einem Array abrufen?
- 22. DocumentDB ein Array von einem Array filtert
- 23. Wie man Namen von einem Array erhält und sie in ein anderes Array in mel?
- 24. Entfernen von Elementen aus einem Struktur-Array in Matlab
- 25. alles von einem 2d-Array in ein normales Array setzen
- 26. Java ein Array von Objekten in einem Array von Objekten
- 27. Array in Array: Wie Array-Daten in einem Array
- 28. verwandeln ein Array von Objekten in ein anderes Array von Objekten mit einer anderen Struktur
- 29. Divide Daten-Array in effizienter Weise Matlab
- 30. Ein Array in ein anderes Array sortieren C++
Sie können [Repelem] (https://www.mathworks.com/help/matlab/ref/repelem.html) verwenden – rahnema1