繁体   English   中英

通过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))到我的文本文件...。我希望我已经解释清楚了。

我在下面放了一些代码,以帮助实现这一目标。 请发表评论,我可以进行调整(或其他人可以根据最新信息发布答案)。

我仍然不确定你到底会得到什么结果。

作为参考,你可以看到文件I / O文件的例子dlmwrite 这里fprintf 在这里 注意,您可以使用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);

希望这可以帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM