C++ to matlab(m-file) without mex

3 次查看(过去 30 天)
I have a C++ code:
#include <iostream>
#include <fstream>
#include <iomanip> // std::setfill, std::setw
using namespace std;
int main()
{
int i,j;
ofstream outfile;
outfile.open("testText.txt", ios::app);
outfile<< setfill('0');
for(i=0;i<2;i++)
{
for(j=0;j<12;j++)
{
outfile<<"XYZ"<<setw(2)<<i<<setw(2)<<j<<"\n";
}
outfile<<"\n";
}
outfile.close();
return(0);
}
Which will generate a text file like:
XYZ0000
XYZ0001
XYZ0002
XYZ0003
XYZ0004
XYZ0005
XYZ0006
XYZ0007
XYZ0008
XYZ0009
XYZ0010
XYZ0011
XYZ0100
XYZ0101
XYZ0102
XYZ0103
XYZ0104
XYZ0105
XYZ0106
XYZ0107
XYZ0108
XYZ0109
XYZ0110
XYZ0111
Need to create same output using matlab code.
Main problem:
setfill() alternative in matlab?
setw() alternative in matlab?
how
outfile<<"XYZ"<<setw(2)<<i<<setw(2)<<j<<"\n";
line can be replaced?
setw(): used to set field width of the next variable
setfill(): used to set fill character, what should be used to fill the width in setw.
Really need some help. Thanks in advance.

采纳的回答

David Sanchez
David Sanchez 2015-3-17
Absolutely, You can:
i=10;
j=2;
option = '02';
str = strcat('XYZ%',option,'d%',option,'d\n');
fprintf(str, i, j)
XYZ1002

更多回答(2 个)

Ken Atwell
Ken Atwell 2015-3-16
You can use fprintf in MATLAB, which is closer in usage to C than C++:
>> i=1;
>> j=11;
>> fprintf('XYZ%02d%02d\n', i, j)
XYZ0111
  1 个评论
Pramit Biswas
Pramit Biswas 2015-3-17
Thank you very much for your really helpful answer.
using this code writing to the file is done;
setw() partially done; can we put those 02 as any variable, i mean if i want to change 02 to 03 automatically within the program?
using said command, fill will be always zero. what if I want to fill it with some other values? i.e. setfill() alternative?

请先登录,再进行评论。


Pramit Biswas
Pramit Biswas 2015-3-17
final matlab code:
input1 = fopen('exp.txt','w');
fill = '02';
for i=0:1:1
for j=0:1:11
str = strcat('XYZ%',fill,'d%',fill,'d\n');
fprintf(input1, str, i, j);
end
fprintf(input1, '\n');
end
fclose(input1);

类别

Help CenterFile Exchange 中查找有关 Logical 的更多信息

产品

Community Treasure Hunt

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

Start Hunting!

Translated by