Создать текстовый файл по Matlab - PullRequest
0 голосов
/ 27 ноября 2018

Я хочу создать такой текстовый файл с помощью 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)) в свой текстовый файл .... Надеюсь, я хорошо объяснил, что хочу.

1 Ответ

0 голосов
/ 27 ноября 2018

Ниже я собрал некоторый код, чтобы помочь продвинуться дальше.Пожалуйста, прокомментируйте, и я могу изменить (или другие могут публиковать ответы на основе обновленной информации).

Я до сих пор не знаю точно, какой у тебя результат.

Для справки, вы можете увидеть примеры документации файлового ввода-вывода для 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);

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...