2016-11-21 3 views
1

Ich versuche, eine einfache Ausgabetabelle in scilab auszudrucken, die nur eine Matrix von Zahlen mit einer oberen Reihe von Kopfzeilen ist. Das Problem, das entsteht, ist, ich weiß nicht, wie man Zeichenfolgen ausdruckt nur die oberste Zeile einer initialisierten Matrix. Zum BeispielAffection eines Stringfehlers Scilab

b= ['i', 'j'] 

druckt

!i j! 

mit Ausrufezeichen. Wofür sind diese Ausrufezeichen?

Und

b = zeros(m1, m2) 
b(1,:) = ['i', 'j' ...] 

gibt einen Fehler

!--error 10000 
%c_i_s: Affection of a string in a matrix of numbers is not implemented. 

Was ist die Bedeutung dieses Fehlers? Wie kann ich Strings in einer Matrix ausgeben, aber auf eine der Zeilen/Spalten zugreifen? Ich habe versucht, String (i) zu setzen, aber das hat auch nicht funktioniert. Vielen Dank

Antwort

0

Eine Scilab-Matrix enthält Einträge vom numerischen Typ. Sie können keine Zeichenfolgen einfügen. In der Regel hält man Header-Strings getrennt von Daten.

headers = ['i', 'j', 'k'] 
data = [1 2 3; 4 5 6; 7 8 9] 

Statt disp zu verwenden, welche Datenformate in einer vorbestimmten Art und Weise (insbesondere enthält es! Delimiters um Arrays von Strings), verwenden mprintf es in Ihrem eigenen Weg zu formatieren. Ein einfaches Beispiel:

mprintf('%s %s %s\n', headers) 
mprintf('%d %d %d\n', data) 

Diese gibt

i j k 
1 2 3 
4 5 6 
7 8 9 

Hier ist einer mit mehr Abstand:

mprintf('%7s %7s %7s\n', headers) 
mprintf('%7d %7d %7d\n', data) 

Ausgang:

i  j  k 
    1  2  3 
    4  5  6 
    7  8  9 

die Dokumentation finden Sie auf formatting parameters für mehr Beispiele.