MATLAB矩阵没有正确格式化

时间:2010-10-21 01:11:11

标签: matlab formatting matrix

我下面有一些代码,我似乎无法正确格式化矩阵。我一直试图让矩阵看起来更专业(靠近在一起)与\ t和fprintf,但似乎无法这样做。我也在为矩阵的每一列添加标题时遇到一些麻烦。任何帮助将不胜感激!

clear all
clc

format('bank')

%    input file values    %
A = [4 6 5 1 0 0 0 0 0; 7 8 4 0 1 0 0 0 0; 6 5 9 0 0 1 0 0 0; 1 0 0 0 0 0 -1 0 0; 0 1 0 0 0 0 0 -1 0; 0 0 1 0 0 0 0 0 -1];
b = [480; 600; 480; 24; 20; 25];
c = [3000 4000 4000 0 0 0 0 0 0];

% Starting xb %
xb = [1 2 3 4 5 6]

% Starting xn %
xn = [7 8 9]


cb = c(xb)
cn = c(xn)

% Get B from A %
B = A(:,xb)

% Get N from A %
N = A(:,xn)

% Calculate z %
z = ((cb*(inv(B))*A)-c)

% Calculate B^(-1) %
Binv = inv(B)

% Calculate RHS of row 0 %
RHS0 = cb*Binv*b

% Calculates A %
A = Binv*A


%STARTING Tableau%
ST = [z RHS0;A b]
for j=1:A
    fprintf(1,'\tz%d',j)
end

q = 0
while q == 0



    m = input('what is the index value of the ENTERING variable?  ')
    n = input('what is the index value of the LEAVING variable?  ')

    xn(xn==m)= n
    xb(xb==n) = m


    cb = c(xb)
    cn = c(xn)
    B = A(:,xb)
    N = A(:,xn)

    Tableuz = (c-(cb*(B^(-1))*A))
    RHS0 = (cb*(B^(-1))*b)
    TableuA = ((B^(-1))*A)
    Tableub = ((B^(-1))*b)

    CT = [Tableuz RHS0; TableuA Tableub];
    disp(CT)
    q = input('Is the tableau optimal? Y-1, N-0')


end

2 个答案:

答案 0 :(得分:2)

我没有深入研究你正在做的事情,而是一些指示: *将分号放在不希望打印到屏幕的行的末尾 - 这样可以更容易地看到其他地方发生的情况。 *你的j = 1:一个循环只打印j。我想你想要的更像是这样:

for row = 1:size(A,1)
   for column = 1:size(A,2)
       fprintf('%10.2f', A(row,column));
    end
    fprintf('\n');
end
  • 如果您尚未使用Matlab调试器,请尝试一下;它使很多这些问题更容易被发现。要启动它,只需通过单击行号旁边的短划线( - )并启动脚本,即可为文件添加断点。快速网络搜索也可以非常快速地提出解决方案 - 其他人通常已经遇到了您将遇到的任何问题。
祝你好运。

答案 1 :(得分:0)

尝试使用num2str并使用所需精度的格式参数。它用于将矩阵转换为字符串。 (注意:这与序列化矩阵的mat2str不同,因此可以使用eval反序列化它们