2013-04-10 3 views
0

일반적으로 matlab에서 우리는 fprintf 명령을 사용하여 헤더를 추가합니다.matlab에 숫자 매트릭스에 문자를 추가하는 방법은 무엇입니까?

테이블의 크기가 입력에 따라 달라 지거나 특정 범위 (명령 창에 표시 할 수있는 총 열 수보다 많음)를 초과 할 때 문제가 발생합니다.

이전에 fprintf 명령을 사용하여 지정한 헤더가 현재 출력 데이터와 호환되지 않습니다.

나는 반복 과정의 일종의 동안 매트릭스의 첫 번째 행에 문자열을 추가하는 것과 같은 방법이 있는지 알고 싶습니다. 나는 거의 시도하지 않았지만 여전히이 문제를 해결할 적절한 방법을 찾지 못했습니다.

또는 실제로는이 목적을 위해 matlab에서 수행 할 수 없습니다. 내가 n 번째 열 및 오류 X1을위한 1 열, 1 개 ... X2 ... x3..xn에 대한 반복 같은 제목을 추가 할 수 above..how 코딩에 대한 예

clear;clc 
A = [2 8 3 1;0 2 -1 4;7 -2 1 2;-1 0 5 2] 
B = [-2;4;3;5] 
Es = 1e-5 


n = length(B); 
x = zeros(n,1); 
Ea = ones(n,1); 
iter = 0; 

while max(Ea) >= Es 
    if iter <= 30 
     iter = iter + 1; 
     x_old = x; 
     for i = 1:n 
      j = 1:n; 
      j(i) = []; 
      x_cal = x; 
      x_cal(i) = []; 
      x(i) = (B(i) - sum(A(i,j) * x_cal))/A(i,i); 
     end 
    else 
     break 
    end 

    x_ans(:,iter) = x; 
    Ea(:,iter) =abs((x - x_old) ./ x); 

    end 

result = [1:iter; x_ans; Ea]' 

. .error x2. 다른 n 열에 대한 xn 오류. 나는이 표제가 자동으로 입력 행렬을 기반으로 생성 될 수 있도록하고 싶습니다.

+1

시도하고있는 결과와 얻은 결과의 예를 게시 할 수 있습니까? – grantnz

+0

@grantnz 나는 내 질문을 편집했다. ..i는 그것이 어떻게 행해질 수 있는지를 정말로 알고 싶다. – green

+0

아직도 문제가 무엇인지 명확하지 않습니다. 헤더를 생성하기 위해 fprintf를 사용한다고 언급했지만 코드는 fprintf를 사용하지 않고 헤더를 생성하지 않습니다. 헤더 행이있는 matlab 행렬을 생성하거나 헤더 행이있는 인쇄 된 출력으로 matlab 행렬을 인쇄하려고합니까? – grantnz

답변

0

표의 크기가 입력에 따라 다르면 c = cell (...)을 사용하여 셀 배열을 사용하십시오. 각 반복에서 단순히 c [i, j] 대신에 c {i, j}를 호출하십시오.

+0

@LeeorI 예제를 추가 했으므로 제목을 추가하는 방법과 입력 데이터를 기반으로 충분히 유연한 경우에 대해 알고 싶습니다. – green

관련 문제