2016-11-21 11 views
1

シンプルな出力テーブルをscilabで印刷しようとしています。これは、ヘッダーの一番上の行の数値の行列です。問題は、文字列の印刷方法がわからないことです初期化された行列の一番上の行。例えば 、感嘆符付き文字列エラーAffilence Scilab

b= ['i', 'j'] 

プリント

!i j! 

。これらの感嘆符は何ですか?

そして

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

はエラー

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

このエラーの意味は何ですかを与えますか?さもなければ、行列内の文字列を印刷するが行/列の1つにアクセスするにはどうすればよいですか?私はstring(i)を入れてみましたが、これもうまくいきませんでした。 ありがとうございます

答えて

0

Scilabマトリックスには数値タイプのエントリがあります。あなたはそれに文字列を入れることはできません。通常、データとは別にヘッダ文字列を保持します。

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

の代わりに所定の方法でデータをフォーマットdispを使用して、(特に、それは!文字列の配列の周りに区切り文字が含まれる)、独自の方法でそれをフォーマットするmprintfを使用しています。簡単な例:

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

これは、ここで

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

出力は、より多くの間隔を有するものである:

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

出力:

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

は多くのためformatting parameters上のドキュメントを参照してください。例。