Запись Matlab в файл или преобразование в матрицу - PullRequest
0 голосов
/ 03 ноября 2018

У меня проблемы с записью этого кода Matlab в CSV или текстовый файл. Как это может быть сделано? Я хочу три значения строки (x, y, z):

  1. fprintf ('%. 2f,%. 2f,%. 2f \ n', (i-2) * 5, A (j, 1), 0)

  2. fprintf ('%. 2f,%. 2f,%. 2f \ n', A (j, i) + (i-2) * 5, A (j, 1), 0)

  3. fprintf ('%. 2f,%. 2f,%. 2f \ n', A (j, i) + (i-2) * 5, A (j, 1) -5,0)

для записи в текстовый или CSV-файл.

В качестве альтернативы, для использования команды csvwrite я не уверен, как преобразовать эти результаты в матрицу X на 3, чтобы они могли быть записаны в csvfile командой csvwrite в Matlab.

Помощь будет высоко ценится.

Матрица Matlab: https://drive.google.com/file/d/1P5h6lhs0O2fxFcxHabAO4hU84UqAZD1m/view?usp=sharing

clear all

%num = xlsread('Workbooklol.xlsx');

load('matlab_matrix.mat')

L=length(num);

num2=num(4:72,:);

L2=length(num2);
L3=length(num2(1,:));

%
for i=1:13;
    for j=1:3;
        if isnan(num2(i,j)) ~= 1;

            A(i,j)=num2(i,j);

        end     
    end    
end


for i=2:3;

    for j=1:13;

        if A(j,i) > 0


          fprintf('%.2f,%.2f,%.2f \n',(i-2)*5,A(j,1),0)
          fprintf('%.2f,%.2f,%.2f \n', A(j,i)+(i-2)*5,A(j,1),0)
          fprintf('%.2f,%.2f,%.2f \n', A(j,i)+(i-2)*5,A(j,1)-5,0)


        end




    end

    fprintf('(command) \n')
    fprintf('line \n')

end

1 Ответ

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

Для записи необходимо fopen текстовый файл, например output.txt.

clear all

%num = xlsread('Workbooklol.xlsx');

load('matlab_matrix.mat')

L=length(num);

num2=num(4:72,:);

L2=length(num2);
L3=length(num2(1,:));

%
for i=1:13;
    for j=1:3;
        if isnan(num2(i,j)) ~= 1;

            A(i,j)=num2(i,j);

        end     
    end    
end

fileID = fopen('output.txt','w');

for i=2:3;

    for j=1:13;

        if A(j,i) > 0


          fprintf(fileID,'%.2f,%.2f,%.2f \n',(i-2)*5,A(j,1),0);
          fprintf(fileID,'%.2f,%.2f,%.2f \n', A(j,i)+(i-2)*5,A(j,1),0);
          fprintf(fileID,'%.2f,%.2f,%.2f \n', A(j,i)+(i-2)*5,A(j,1)-5,0);


        end




    end

    fprintf(fileID,'(command) \n');
    fprintf(fileID,'line \n');

end

fclose(fileID)

В файле output.txt:

0.00,745.00,0.00 
4.80,745.00,0.00 
4.80,740.00,0.00 
0.00,740.00,0.00 
3.00,740.00,0.00 
3.00,735.00,0.00 
(command) 
line 
5.00,747.00,0.00 
16.00,747.00,0.00 
16.00,742.00,0.00 
5.00,742.00,0.00 
18.00,742.00,0.00 
18.00,737.00,0.00 
(command) 
line 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...