2017-12-13 13 views
0

실험 결과가 포함 된 표를 만들고 있습니다. for 루프에서 변수 정의에 문제가 있습니다. 루프없이 똑같은 일을 할 때 나는 아무런 문제가 없었습니다. 그래서 나는 적어도 힌트가 필요하다고 생각합니다.MATLAB : for 루프의 테이블에있는 문제

for t = 1:N 
Bands(t) = {'Band %d',t}; 
Diameter(t) = dn; 
Bandwidth(t) = barray(t); 
n1(t) = R.m(t); 
n2(t) = R2.m2(t); 
P1(t) = round(p(t),2); 
P2(t) = round(p2(t),2); 
Damage(t) = round(dad(t),2); 
end 
Bands(t+1) = {'Total'}; 
Diameter(t+1) = {'-'}; 
Bandwidth(t+1) = sum(barray); 
n1(t+1) = sum(R.m); 
n2(t+1) = sum(R2.m2); 
P1(t+1) = round(ptot,2); 
P2(t+1) = round(ptot2,2); 
Damage(t+1) = round(damage,2); 

Bands = Bands'; 
Diameter = Diameter'; 
Bandwidth = Bandwidth'; 
n1 = n1'; 
n2 = n2'; 
P1 = P1'; 
P2 = P2'; 
Damage = Damage'; 

T = table(Bands,Diameter,BandWidth,n1,n2,P1,P2,Damage,... 
'RowNames',Bands); 
cellArrayOfTableToBeWritten = [cellArrayOfTableToBeWritten; 
          T.Properties.VariableNames; 
          table2cell(T); 
          blankrow]; 

내가 코드를 실행하고 밴드 (t)와 공평 나에게 오류를 준, 내가 올바른 방법이 무엇인지 알 수 :

는 지금까지 내가 미리 할당 한 후, 무슨 짓을했는지입니다 테이블에서 인쇄 할 수 있지만 Bands (t + 1)에서 오류가 발생하는 이유는 무엇입니까?

'셀에서 이중으로 변환 할 수 없습니다.'

편집 : 난 할 노력하고있어 이것이다 :

Band = {'One';'Two';'Three';'Four';'Total'}; 

하지만 지금과 내가 프로그램을 시작할 때까지 내가해야 얼마나 많은 밴드 알 수 없기 때문에 루프. for 루프를 사용하여 테이블을 만든 후에는 xlwrite를 사용하여 Excel 파일로 내 보냅니다 (Macintosh에서는 xlswrite가 아닌). 당신은 당신은 예를 들어 값 'Band 1'Bandst 번째 요소를 할당하는 기대

Bands(t) = {'Band %d',t} 

을 사용하는 경우

+0

이 코드는 크게 최적화 된 것처럼 보이며 실제로 달성하려는 내용을 설명하면 건설적 일 수 있습니다. 또한 여기에 오류에 대해 질문 할 때는 항상 전체 실제 오류 메시지를 포함하십시오. – Wolfie

+0

원래 게시물을 약간 편집했습니다. 오류 메시지는 전체적으로 '적색'이 아니며 'try catch ME'의 결과입니다. – Jack

답변

1

나는 가정합니다. 실제로 수행하고있는 작업은 번째 요소 인 Bands을 셀 배열 {'Band %d', 1}에 할당하는 것입니다. 당신은 sprintf를 사용해야합니다 :

Bands(t) = {sprintf('Band %d', t)}; % >> output 'Band 1' when t=1 
% or 
% Bands{t} = sprintf('Band %d', t); 

이렇게하면 할당 불일치와 선 아래로 문제를 해결해야한다.

+0

예, 당신이 옳다고 가정하고 있습니다. 나는 이것을 게시하기 전에 이미 스스로 해보려고했지만, 그 줄에서이 오류를 나에게 준다 :'셀에서 이중으로 변환하는 것은 불가능하다 '. – Jack

+0

테이블을 초기화하여 열 변수 유형 double을 갖기 때문입니다. 당신은 당신이'밴드 '를 초기화 한 방법을 보여주지 않았으므로 그걸 고칠 수는 없습니다. 초기화를 포함하도록 질문을 편집하십시오. 코드를 설명하는 대신 일반적으로 간단한 입력과 예상 출력 예제를 게시하는 것이 더 쉽습니다. – Wolfie

+0

Gotcha는 친구를 고맙다. .. 나는 아직도 멍청한 놈이라고 생각한다. – Jack