2011-12-30 2 views
1

난에 대한 코드가 I = 1루프를 위해 MATLAB에서 데이터를 내보내는 방법은 무엇입니까?

"루프"4 문 ... Y = SIM (NET, I); 단부

는 이제 시트를 엑셀 (Y)의 값을 보내야. 그것을 위해 난 ..

xlswrite ('output_data.xls', Y 'output_data' ', A1')

사용하지만 내 문제는 엑셀 즉의 ID "A1"은 각 반복에 따라 변경해야합니다 ... 제 경우에는 반복 1 -> A1, 반복 -> A2 등등으로 변경해야합니다 ..

아무도 도와주세요 ... 감사합니다. 어떤 도움이나 제안을 위해 ...

답변

0

당신은 루프에 대한 후 xlswrite를 넣을 수 있습니다. 당신이 원하는 것은 행렬에 결과를 저장하는 것입니다.이 함수는 행렬을 작성할 수 있습니다. 또한 []을 사용하여 문자열을 결합하여 범위를 변경할 수 있습니다.

>> for i=1:4 
Range=['A' num2str(i)] 
end 
Range = 
A1 
Range = 
A2 
Range = 
A3 
Range = 
A4 

하지만이 방법은 좋지 않습니다. 매번 Excel 파일을 열고 작성해야합니다.

+0

감사합니다. 그것은 정말로 나를 많이 돕는다 ... –

4

sim 출력을 벡터 (y(ii))에 저장하고 단일 쓰기로 시트에 저장할 수 있습니다. 또한 작은 쓰기 대신 단일 대량 쓰기를 수행 할 때보다 효율적입니다.

첫 번째 셀을 지정하고 거기에서부터 y이 기록됩니다. 당신이 범위 ['A1:A',num2str(last)] 대신 A1 쓰기 지정 선호하는 경우

last = someNumber; 
for i=1:last statement... y(i)=sim(net, I); end 

xlswrite('output_data.xls', y', 'output_data', 'A1'); 

.

당신이 정말로 루프 시도 내에서 작성하려는 경우

: 당신은 또한, xlswrite는 내부적으로 무엇을 자신을 위해 할 수있는

for ii=1:last 
    ... 
    y=sim(net, I); 
    xlswrite('output_data.xls', y, 'output_data', sprintf('A%d',ii)); 
end 
+1

대답 해 주셔서 감사합니다. >> xlswrite ('output_data.xls', y, 'output_data', [ 'A'num2str (count)]) –

2

COM을 사용하여 상호 작용된다. 필자는 자주 사용되는 Excel 템플릿이나 데이터 파일을 가지고있을 때 더 많은 제어가 가능하기 때문에이 작업을 선호합니다.

Excel = actxserver('Excel.Application'); 
Workbook = Excel.Workbooks.Open('myExcelFile.xlsx'); 
MySheet = Excel.ActiveWorkBook.Sheets.Item(1); 

set(get(MySheet,'Range','A1:A10'), 'Value', yourValues); 
... 
invoke(Workbook, 'Save'); 
invoke(Excel, 'Quit'); 
delete(Excel); 

이렇게하면 매번 다시 열지 않고도 새로운 데이터를 새로운 범위로 저장할 수 있습니다.

더 나은은 (xlswrite이처럼) (디버그 모드에서 종료와 같은 일을하고 특히) 손실 된 파일의 잠금을 방지하기 위해 oncleanup 함수를 정의하는 것입니다 : 당신의 도움에 대한

... 
myWorkbook = Excel.Workbooks.Open(filename,0,true); 
cleanUp = onCleanup(@()xlsCleanup(Excel, filename)); 

function xlsCleanup(Excel,filepath) 
    try 
     Excel.DisplayAlerts = 0; %// Turn off dialog boxes 
     [~,n,e] = fileparts(filepath); %// Excel API expects just the filename 
     fileName = [n,e]; 
     Excel.Workbooks.Item(fileName).Close(false); 
    end 
    Excel.Quit; 
end 
관련 문제