fprintf of multidimensional cell arrays

1 Ansicht (letzte 30 Tage)
Jamie Wardlaw
Jamie Wardlaw am 4 Dez. 2013
Beantwortet: Jamie Wardlaw am 4 Dez. 2013
Hello,
I am working on an export script to extract requirements references from my model to a simple XML file that I then post process using perl. the requirements references are simple text added as annotations to a block within the locality of the functionality. The script works until I have multiple requirements referenced on one annotation on separate lines. The problem seems to stem from the return of a cell array (1x3).
Here is the script:
% code
reqrefs = find_system('Regexp','on','AttributesFormatString','m:');
reqtxt = get_param(reqrefs,'AttributesFormatString');
reqstr = 'm:([0-9]+\.[A-Z]+\.[A-Z]+\.[0-9]+\.v[0-9]+)';
reqs = regexp(reqtxt,reqstr,'match');
fileID = fopen('~reqrefs.txt','wt');
fprintf(fileID,'%s\n','<SLX>');
for i = 1:length(reqrefs)
fprintf(fileID,'\t<XREF>\n\t\t<ID>%s</ID>\n\t\t<SYS>%s</SYS>\n\t</XREF>\n',char(reqs{i}),reqrefs{i});
sys(i).reqxref = reqs{i};
sys(i).location = reqrefs(i);
end
fprintf(fileID,'%s','</SLX>');
fclose(fileID);
The output from the script is in the attached file. At line 32 you can see how the multi-lined annotation is output to the file. Can anyone help me change my fprintf statement to handle to the cell array correctly?
Thanks
Jamie
  1 Kommentar
Jamie Wardlaw
Jamie Wardlaw am 4 Dez. 2013
Coming back to this with fresh eyes I found the solution, my for loop has been changed to parse the cell array as follows
if true
% code
for i = 1:length(reqrefs)
reqids = reqs{i};
[nrows,ncols]=size(reqids);
for col=1:ncols
fprintf(fileID,'\t<XREF>\n\t\t<ID>%s</ID>\n\t\t<SYS>%s</SYS>\n\t</XREF>\n',char(reqids{:,col}),reqrefs{i});
end
end
The text is now correctly extracted from the model on multi-lines of the annotation.

Melden Sie sich an, um zu kommentieren.

Akzeptierte Antwort

Jamie Wardlaw
Jamie Wardlaw am 4 Dez. 2013
My answer is above

Weitere Antworten (0)

Kategorien

Mehr zu Programmatic Model Editing finden Sie in Help Center und File Exchange

Produkte

Community Treasure Hunt

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

Start Hunting!

Translated by