八度。一种将数值数组和字符数组并排显示的方法?
Octave. A way to display numeric arrays and char arrays next to each other?
我想以格式显示矩阵 Yn (5x5)、Un(5x1)、Jn(5x1):Yn * Un = Jn,如下所示:
multiply_sign = [ nan; nan; '*'; nan; nan ];
equals_sign = [ nan; nan; '='; nan; nan ];
YnUnJn = [Yn, multiply_sign, Un, equals_sign, Jn]
我收到一个错误,“*”和“=”向量是字符数组,Yn、Un、Jn 是数字数组。有没有办法绕过它?
在matlab中可以使用uitable,但在Octave中没有实现。
输入为 Yn、Un、Jn 矩阵,其维度如上所述。
输出是 YnUnJn 矩阵或任何看起来像指定格式的东西:矩阵 Yn,然后是“*”符号,然后是 Un,然后是“=”符号,然后是 Jn 矩阵。
像这样:
这是 Octave 中的基本实现。注意 disp
八度函数 returns 一个字符串。
Yn = rand(5)-.5;
Un = rand(5,1)-.5;
Jn = rand(5,1)-.5;
b = blanks(size(Yn ,1));
dsp=@(x)char(strsplit(disp(x),'\n'));
multiply_sign = strjust(['*' b],'center').';
equals_sign = strjust(['=' b],'center').';
disp([dsp(Yn) multiply_sign dsp(Un) equals_sign dsp(Jn)])
0.1610588 0.1244556 -0.2046512 -0.1799725 -0.3302048 0.364565 0.167053
-0.1774412 0.3618586 0.4974047 0.4349322 -0.4689669 -0.013163 -0.442009
0.1016794 -0.0991844 0.4728800 0.2046589 -0.2876299* 0.091990= 0.405725
-0.2048010 -0.4256928 -0.0517186 0.2915129 -0.3435698 -0.376725 0.342397
-0.2740378 -0.0907411 0.0090493 0.4677547 -0.2294902 -0.136846 0.096984
.
在 MATLAB 中,您可能需要使用 evalc('disp(Yn)')
。
我想以格式显示矩阵 Yn (5x5)、Un(5x1)、Jn(5x1):Yn * Un = Jn,如下所示:
multiply_sign = [ nan; nan; '*'; nan; nan ];
equals_sign = [ nan; nan; '='; nan; nan ];
YnUnJn = [Yn, multiply_sign, Un, equals_sign, Jn]
我收到一个错误,“*”和“=”向量是字符数组,Yn、Un、Jn 是数字数组。有没有办法绕过它?
在matlab中可以使用uitable,但在Octave中没有实现。
输入为 Yn、Un、Jn 矩阵,其维度如上所述。
输出是 YnUnJn 矩阵或任何看起来像指定格式的东西:矩阵 Yn,然后是“*”符号,然后是 Un,然后是“=”符号,然后是 Jn 矩阵。
像这样:
这是 Octave 中的基本实现。注意 disp
八度函数 returns 一个字符串。
Yn = rand(5)-.5;
Un = rand(5,1)-.5;
Jn = rand(5,1)-.5;
b = blanks(size(Yn ,1));
dsp=@(x)char(strsplit(disp(x),'\n'));
multiply_sign = strjust(['*' b],'center').';
equals_sign = strjust(['=' b],'center').';
disp([dsp(Yn) multiply_sign dsp(Un) equals_sign dsp(Jn)])
0.1610588 0.1244556 -0.2046512 -0.1799725 -0.3302048 0.364565 0.167053
-0.1774412 0.3618586 0.4974047 0.4349322 -0.4689669 -0.013163 -0.442009
0.1016794 -0.0991844 0.4728800 0.2046589 -0.2876299* 0.091990= 0.405725
-0.2048010 -0.4256928 -0.0517186 0.2915129 -0.3435698 -0.376725 0.342397
-0.2740378 -0.0907411 0.0090493 0.4677547 -0.2294902 -0.136846 0.096984
.
在 MATLAB 中,您可能需要使用 evalc('disp(Yn)')
。