我试图在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.
这个错误是什么意思?如何在矩阵中打印字符串但访问其中一行/列?我试过把字符串(i)但这也没用。 谢谢
答案 0 :(得分:0)
Scilab矩阵具有数字类型的条目。你不能在其中加入字符串。通常,会将标题字符串与数据分开。
headers = ['i', 'j', 'k']
data = [1 2 3; 4 5 6; 7 8 9]
使用mprintf
以您自己的方式格式化,而不是使用以预定方式格式化数据的disp
(特别是它包括围绕字符串数组的!分隔符)。一个简单的例子:
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上的文档。