error in writematrix command (using loop)

I have a syntax problem with a code. I want to use writematrix command in order to get output files from my code. Previously in my code I use for in order to create a loop. I would like for each loop to create a specific output. I use
for z=1:size(d2,1) %d2 is a matrix from input file)
....
writematrix(A,'output',num2str(z),'.xlsx') % A is an output matrix I want to create
end
but command window shows me an error.
Could you please help me?

8 Commenti

You're undoubtedly intending
writematrix(A,"output"+z,'.xlsx')
using the newfangled string class with its automagic conversion and catenation via "+"
The oldfangled way would have been
writematrix(A,num2str(z,'output%02d.xlsx'))
The second answer work!! thank you @dpb
First does, too, if don't forget to add the other "+" after pasting original...
>> z=1;
>> "output"+z+".xlsx"
ans =
"output1.xlsx"
>>
It doesn't have the nicety of the leading zero in the numeric field to ensure sorting in numeric order the other does, compose could take care of that.
I have experienced the same issue as @Ivan Mich. Does writematrix support num2str?
@Isaac Oguntoye: Your question is not meaningful. writematrix does not "support" num2str. The problem is, that the 2nd input argument of writematrix must be the file name. It does not matter, how you create it, but it must be provided as one argument. The OP used 3 arguments:
writematrix(A, 'output', num2str(z), '.xlsx')
% 1. 2. 3.
The solution is to join the 3 parts:
writematrix(A, ['output', num2str(z), '.xlsx'])
% or
writematrix(A, sprintf('output%d.xlsx', z))
% or
writematrix(A, 'output' + z + '.xlsx')
@Jan Not meaningful? Sounds a little harsh. Ya, should have conveyed my thoughts better. Thanks for your suggested helpful solutions!
Sorry, @Isaac Oguntoye, I'm not a native speaker. With "not meaningful" I meant, that there is no logical meaning. One command cannot support another command. I do not have emotions when I answer questions in the forum and do not assess their background. I just wanted to tell you, that there is no magic relation between writematrix anf num2str.
@Jan, Thank you so much for responding! Yes, I understand. I guess I wanted to say something like can num2str be used as an attribute within the writematrix function or as an option (like Name, Value, Delimiter) in the writematrix function? Even this isn't the perfect way to ask the question but you have answered well. I used the first part of your solution in your first response (that is :- writematrix(A, ['output', num2str(z), '.xlsx']))and it worked for me. Thanks so much!

Accedi per commentare.

Risposte (0)

Richiesto:

il 14 Feb 2021

Commentato:

il 14 Set 2021

Community Treasure Hunt

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

Start Hunting!

Translated by