[英]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]
我得到一個錯誤,即'*'和'='向量是char數組,而Yn,Un,Jn是數字數組。 也許有辦法繞過它嗎?
在matlab中,可以使用uitable,但不能在Octave中實現。
輸入是具有上述尺寸的Yn,Un,Jn矩陣。
輸出是YnUnJn矩陣或任何看起來像指定格式的矩陣:矩陣Yn,然后是“ *”號,然后是Un,然后是“ =”號,然后是Jn矩陣。
像這樣:
這是Octave的基本實現。 請注意,八度中的disp
函數返回一個字符串。
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)')
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.