簡體   English   中英

使用循環打印 MATLAB 元素

[英]Printing MATLAB Elements using loop

我正在使用 MATLAB 打印 3x3 矩陣 [2,3,4;5,7,8;1,4],現在如何使用循環打印矩陣的邊界元素。 所以 (7) 不應該打印在 output 中,如下所示

 2     3     4
 5           8
 1     4     3

這適用於任何大小的矩陣。 矩陣不應包含NaN 結果具有自動列間距

Matrix = [2 3 4 9; 5 7 8 4; 1 4 3 0]; % input
M = Matrix;                           % make a copy. Will be overwritten
M(2:end-1, 2:end-1) = NaN;            % set inner entries to NaN
c = num2str(M);                       % convert to char array. Provides column alignment
c = cellstr(c);                       % convert to cell array of char row vectors
c = strrep(c, 'NaN', '   ');          % replace 'NaN' in each char row vector by spaces
c = cell2mat(c);                      % convert back to char array
disp(c)                               % display

這個例子產生了顯示

2    3    4    9
5              4
1    4    3    0

作為另一個示例(查看自動列間距),

Matrix = [1237123 5 72347; 23486234862 234234 9172364; 5 777 33];

生產

    1237123            5        72347
23486234862                   9172364
          5          777           33

將您的矩陣轉換為categorical矩陣並將所有內部條目替換為圖形空間,如下所示:

M = [2,3,4; 5,7,8; 1,4,3]; %given sample-input matrix
C = categorical(M); %converting to a categorical matrix
C(2:end-1, 2:end-1) = char(8199); %setting inner entries to a figure-space
disp(C); %displaying resultant values of C

結果是:

2      3      4 
5             8 
1      4      3 

使用 for 循環並省略打印內部數字的解決方案可以通過使用一組嵌套的 for 循環遍歷行和列來完成。 如果您只需要它適用於 3 x 3 的情況,您可以將 if 條件更改為: if(Row == 2 && Column == 2) if 語句檢查以確保元素不在邊界內:


如果以下條件都為真,則元素不在邊界上:

Row不等於 1
Column不等於 1
Row不等於Number_Of_Rows
Column不等於Number_Of_Columns

Matrix = [2 3 4; 5 7 8; 1 4 3];

[Number_Of_Rows,Number_Of_Columns] = size(Matrix);

for Row = 1: Number_Of_Rows
    for Column = 1: Number_Of_Columns
    
    Value = Matrix(Row,Column);
    if (Row ~= 1 && Column ~= 1 && Row ~= Number_Of_Rows && Column ~= Number_Of_Columns)
        fprintf("    ",Value);
    else        
        fprintf("%d   ",Value);
    end
  
    end
    fprintf("\n");
end

使用 MATLAB R2019b 運行

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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