2016-12-06 1 views
0

Ich habe zwei Matrizen, die ich vertikal verkettet habe. Allerdings möchte ich 2 oder mehr Zeilen zwischen ihnen mit einer Zeichenfolge in diesen Zeilen einfügen .. Wie gehe ich dabei vor? Grundsätzlich ist das, was ich habe;Zeilen mit Strings zwischen einer Matrix in Matlab hinzufügen

A = 0.7363 0.8217 0.7904 0.5144 0.5341 
     0.3947 0.4299 0.9493 0.8843 0.0900 
     0.6834 0.8878 0.3276 0.5880 0.1117 
     0.7040 0.3912 0.6713 0.1548 0.1363 
     0.4423 0.7691 0.4386 0.1999 0.6787 
     0.0196 0.3968 0.8335 0.4070 0.4952 
     0.3309 0.8085 0.7689 0.7487 0.1897 
     0.4243 0.7551 0.1673 0.8256 0.4950 
     0.2703 0.3774 0.8620 0.7900 0.1476 
     0.1971 0.2160 0.9899 0.3185 0.0550 

Aber ich will es sein;

A = 0.7363 0.8217 0.7904 0.5144 0.5341 
      0.3947 0.4299 0.9493 0.8843 0.0900 
      0.6834 0.8878 0.3276 0.5880 0.1117 
      0.7040 0.3912 0.6713 0.1548 0.1363 
      0.4423 0.7691 0.4386 0.1999 0.6787 

      MESH  PART 
      0.0196 0.3968 0.8335 0.4070 0.4952 
      0.3309 0.8085 0.7689 0.7487 0.1897 
      0.4243 0.7551 0.1673 0.8256 0.4950 
      0.2703 0.3774 0.8620 0.7900 0.1476 
      0.1971 0.2160 0.9899 0.3185 0.0550 
+4

können Sie nicht. In MATLAB kann eine Matrix nur vom Typ 1 sein. –

+1

Ich denke, die Frage wäre leichter zu beantworten, wenn wir wüssten, warum Sie dies tun wollten. Was ist der Zweck und die beabsichtigte Verwendung der Intra-Matrix-Spaltenüberschriften? – TroyHaskin

+0

Wenn Ihr Problem nur darin besteht, die Matrix so darzustellen, teilen Sie zuerst die ** A ** -Matrix in zwei Teile (** A1 **, ** A2 **) und fügen Sie 'disp ('MESH PART')' dazwischen hinzu ** A1 ** und ** A2 **. – netizen

Antwort

0

Unter der Annahme, CATIA richtig die Ausgabe lesen können, könnten Sie setzen einfach A als cell Variable, die sowohl Zahlen als auch Zeichenfolgen enthalten. Dies wird durch Verwendung der Klammern {} im Gegensatz zu [] für numerische Matrizen erreicht. In Ihrem Fall würde ich schreiben:

A = {0.7363 0.8217 0.7904 0.5144 0.5341; ... 
     0.3947 0.4299 0.9493 0.8843 0.0900; ... 
     0.6834 0.8878 0.3276 0.5880 0.1117; ... 
     0.7040 0.3912 0.6713 0.1548 0.1363; ... 
     0.4423 0.7691 0.4386 0.1999 0.6787; ... 
     'MESH' 'PART' '-'  '-'  '-' ; ... 
     0.0196 0.3968 0.8335 0.4070 0.4952; ... 
     0.3309 0.8085 0.7689 0.7487 0.1897; ... 
     0.4243 0.7551 0.1673 0.8256 0.4950; ... 
     0.2703 0.3774 0.8620 0.7900 0.1476; ... 
     0.1971 0.2160 0.9899 0.3185 0.0550}; 

Die ‚-'s neben MESH und PART sind für die Übereinstimmung mit der Matrix (in diesem Fall Zelle) Größe. Ich hoffe, das funktioniert für dich.

+0

Das wäre wirklich gewesen, aber für mich zu verwenden, dass ich nicht die ganzen Daten schreiben muss alleine? Die Sache ist, dass die oben gezeigte nur eine Beispieldaten ist, die realen Daten sind über tausend Zahlen. Also gibt es eine Möglichkeit, es zu tun, ohne alle Daten zu tippen? –

+0

Sicher, wahrscheinlich würde eine Art von Schleife funktionieren, aber es hängt von den Daten ab, die Sie verwenden. Wenn Sie bereit sind, zu teilen, wie Ihre Daten strukturiert sind/gespeichert werden und wo Sie die Zeichenfolgen hinzufügen müssen, könnte ich Ihnen bei der Durchführung helfen. – yuyu2809

+0

Sie müssten keine Schleife verwenden, Sie könnten einfach ['num2cell'] (https://uk.mathworks.com/help/matlab/ref/num2cell.html) verwenden, also' A = [num2cell (A (1: 5, :)); {'MESH', 'PART', '', '', ''}; num2cell (A (1: Ende, :))] ' – Wolfie

Verwandte Themen