簡體   English   中英

八度。 一種顯示數字數組和char數組彼此相鄰的方法?

[英]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矩陣。

像這樣: https://imgur.com/wUEKbyU

這是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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM