通过matlab创建一个文本文件
Create a text file by matlab
我想用 Matlab 创建一个这样的文本文件,但我不知道该怎么做。
range(0,25e-9,0+600e-9),range(0+600e-9,1e-4,1.000000e-03),range(1.000000e-03,25e-9,1.000000e-03+600e-9),range(1.000000e-03+600e-9,1e-4,2.000000e-03),range(2.000000e-03,25e-9,2.000000e-03+600e-9),range(2.000000e-03+600e-9,1e-4,3.000000e-03)
例如这里我想创建6个点,我可以自己做。但是如果我想创建 100 点或 500 点,我必须使用 Matlab。我写了一个代码并创建了一个类似这样的矩阵,但我想要的是不同的。这是我的代码,但我不能使用它.....
clc
clear
close all
stp1=25e-9;
stp2=1e-4;
A=600e-9;
B=1e-3;
i=3;
F=zeros(i,3);
for i=1:i
if i==1
F(i,1)=0;
F(i,2)=stp1;
F(i,3)=A;
else
if mod(i,2)==0
F(i,1)=F(i-1,3);
F(i,2)=stp2;
F(i,3)=(i/2)*B;
else
F(i,1)=F(i-1,3);
F(i,2)=stp1;
F(i,3)=F(i,1)+A;
end
end
end
例如这是我的矩阵:
` 0.0000e+000 25.0000e-009 600.0000e-009
600.0000e-009 100.0000e-006 1.0000e-003
1.0000e-003 25.0000e-009 1.0006e-003`
我想把它们放在一行中,像这样:
`range(0.0000e+000,25.0000e-009,600.0000e-009),range(600.0000e-009,100.0000e-006,1.0000e-003),range(1.0000e-003,25.0000e-009,1.0006e-003)`
你知道我想将 range(A(1,1),A(1,2),A(1,3)),range(A(2,1),A(2,2),A(2,3))
添加到我的文本文件....我希望我已经很好地解释了我想要的。
我在下面整理了一些代码以帮助推进这一进程。请发表评论,我可以调整(或者其他人可以 post 根据更新的信息回答)。
我仍然不确定您想要什么结果。
作为参考,您可以查看 dlmwrite
here and for fprintf
here 的文件 I/O 文档示例。请注意,您可以使用 dlmwrite
指定分隔符,使用 fprintf
指定确切格式。
A = [0.0000e+000 25.0000e-009 600.0000e-009;
600.0000e-009 100.0000e-006 1.0000e-003;
1.0000e-003 25.0000e-009 1.0006e-003];
dlmwrite('TestFile.txt',A) % Example use of dlmwrite
B = range(A,2); % Range of the rows of A
dlmwrite('TextFile2.txt',B)
C = cell(size(A,1),1);
fileID = fopen('TestFile3.txt','w+');
formatstr = '%12s\r\n';
for k = 1:size(A,1)
C{k}=['range(A(' num2str(k) ',:)'];
fprintf(fileID,formatstr,C{k});
end
fclose(fileID);
希望对您有所帮助。
我想用 Matlab 创建一个这样的文本文件,但我不知道该怎么做。
range(0,25e-9,0+600e-9),range(0+600e-9,1e-4,1.000000e-03),range(1.000000e-03,25e-9,1.000000e-03+600e-9),range(1.000000e-03+600e-9,1e-4,2.000000e-03),range(2.000000e-03,25e-9,2.000000e-03+600e-9),range(2.000000e-03+600e-9,1e-4,3.000000e-03)
例如这里我想创建6个点,我可以自己做。但是如果我想创建 100 点或 500 点,我必须使用 Matlab。我写了一个代码并创建了一个类似这样的矩阵,但我想要的是不同的。这是我的代码,但我不能使用它.....
clc
clear
close all
stp1=25e-9;
stp2=1e-4;
A=600e-9;
B=1e-3;
i=3;
F=zeros(i,3);
for i=1:i
if i==1
F(i,1)=0;
F(i,2)=stp1;
F(i,3)=A;
else
if mod(i,2)==0
F(i,1)=F(i-1,3);
F(i,2)=stp2;
F(i,3)=(i/2)*B;
else
F(i,1)=F(i-1,3);
F(i,2)=stp1;
F(i,3)=F(i,1)+A;
end
end
end
例如这是我的矩阵:
` 0.0000e+000 25.0000e-009 600.0000e-009
600.0000e-009 100.0000e-006 1.0000e-003
1.0000e-003 25.0000e-009 1.0006e-003`
我想把它们放在一行中,像这样:
`range(0.0000e+000,25.0000e-009,600.0000e-009),range(600.0000e-009,100.0000e-006,1.0000e-003),range(1.0000e-003,25.0000e-009,1.0006e-003)`
你知道我想将 range(A(1,1),A(1,2),A(1,3)),range(A(2,1),A(2,2),A(2,3))
添加到我的文本文件....我希望我已经很好地解释了我想要的。
我在下面整理了一些代码以帮助推进这一进程。请发表评论,我可以调整(或者其他人可以 post 根据更新的信息回答)。
我仍然不确定您想要什么结果。
作为参考,您可以查看 dlmwrite
here and for fprintf
here 的文件 I/O 文档示例。请注意,您可以使用 dlmwrite
指定分隔符,使用 fprintf
指定确切格式。
A = [0.0000e+000 25.0000e-009 600.0000e-009;
600.0000e-009 100.0000e-006 1.0000e-003;
1.0000e-003 25.0000e-009 1.0006e-003];
dlmwrite('TestFile.txt',A) % Example use of dlmwrite
B = range(A,2); % Range of the rows of A
dlmwrite('TextFile2.txt',B)
C = cell(size(A,1),1);
fileID = fopen('TestFile3.txt','w+');
formatstr = '%12s\r\n';
for k = 1:size(A,1)
C{k}=['range(A(' num2str(k) ',:)'];
fprintf(fileID,formatstr,C{k});
end
fclose(fileID);
希望对您有所帮助。