Write in Excel With Matlab on continues Cells

조회 수: 1 (최근 30일)
Virginia
Virginia 2013년 6월 26일
Hello!, I'm trying to make a code which writes data of a matrix in an Excel Worksheet, however, I'd like to write several matrices one after the other, the problem is that with the function xlswrite I have to specify the cell were the matrix is going to be written, and depends on the data there will be diferents quantities of matrices.
Right now I have this:
fprintf('Select file location \n');
ubic=uigetdir;
name=input('Specify Name of the file: ','s');
comp=strcat(ubic, '\',name, '.xls');
nomhoja='Desplazamiento';
for i=1:np
head={'t (seg)', 'x (cm)'};
xlswrite(comp, head, nomhoja, 'A1');
xlswrite(comp, [rangT',maximox(i,1:num)'], nomhoja, 'A2');
end
As you can see I need to write this matrix [rangT',maximox(i,1:num)'] 'np' times, so when I write 'A1' for the first loop it's fine but for the next one I need it to be 'C1', the next one 'E1'.. etc
Hope You can help me
Thanks!!

채택된 답변

Iman Ansari
Iman Ansari 2013년 6월 26일
First put your data in a cell array then write it:
rangT = 1:10;
maximox = rand(10,10);
fprintf('Select file location \n');
ubic=uigetdir;
name=input('Specify Name of the file: ','s');
comp=strcat(ubic, '\',name, '.xls');
nomhoja='Desplazamiento';
C = cell(10,20);
for i=1:10
C(:,(2*i-1):(2*i)) = num2cell([rangT',maximox(i,1:10)']);
end
head={'t (seg)', 'x (cm)'};
Data = [repmat(head,1,10);C];
xlswrite(comp, Data, nomhoja);
  댓글 수: 6
Virginia
Virginia 2013년 6월 26일
it returns me this error In an assignment A(:) = B, the number of elements in A and B must be the same.
this is the code I introduced:
nomhoja='Desplazamiento';
C=cell(c,num);
for i=1:np
C(:,(2*i-1):(2*i)) = num2cell([rangT',maximox(i,1:num)']);
end
header(1:2:num) = strcat({'Story '},num2str((1:np)'));
header(end+1) = cell(1);
head={'t (seg)', 'x (cm)'};
Data = [header;repmat(head,1,num);C];
xlswrite(comp, Data, nomhoja);
Iman Ansari
Iman Ansari 2013년 6월 26일
np = 10;
num = 8;
rangT = 1:8;
maximox = rand(10,8);
nomhoja='Desplazamiento';
C=cell(num,2*np);
for i=1:np
C(:,(2*i-1):(2*i)) = num2cell([rangT',maximox(i,1:num)']);
end
header(1:2:2*np) = strcat({'Story '},num2str((1:np)'));
header(end+1) = cell(1);
head={'t (seg)', 'x (cm)'};
Data = [header;repmat(head,1,np);C];
xlswrite(comp, Data, nomhoja);

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by