как читать из файла и отображать данные в нужных строках в Matlab - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь прочитать файл и отобразить данные в строках 6, 11, 111 и 127 в Matlab.Я не мог понять, как это сделать.Я искал форумы Matlab и эту платформу для ответа.Я использовал fscanf, textcan и другие функции, но они работали не так, как предполагалось.Я также использовал цикл for, но опять же результат был не тем, что я хотел.Теперь я могу читать только одну строку и отображать ее.Просто я хочу отобразить их все (данные в приведенных выше строках) одновременно.Как я могу это сделать?

код Matlab

n = [0 :1: 127];

%% Problem 1
figure
x1 = cos(0.17*pi*n)
%it creates file and writes content of x1 to the file
fileID = fopen('file.txt','w');
fprintf(fileID,'%d \n',x1);
fclose(fileID);
%line number can be changed in order to obtain wanted values. 
fileID = fopen('file.txt');
line = 6;
C = textscan(fileID,'%s',1,'delimiter','\n', 'headerlines',line-1);
celldisp(C)
fclose(fileID);

и это файл

1 
8.607420e-01 
4.817537e-01 
-3.141076e-02 
-5.358268e-01 
-8.910065e-01 
-9.980267e-01 
-8.270806e-01 
-4.257793e-01 
9.410831e-02 
5.877853e-01 
9.177546e-01 
9.921147e-01 
7.901550e-01 
3.681246e-01 
-1.564345e-01 
-6.374240e-01 
-9.408808e-01 
-9.822873e-01 
-7.501111e-01 
-3.090170e-01 
2.181432e-01 
6.845471e-01 
9.602937e-01 
9.685832e-01 
7.071068e-01 
2.486899e-01 
-2.789911e-01 
-7.289686e-01 
-9.759168e-01 
-9.510565e-01 
-6.613119e-01 
-1.873813e-01 
3.387379e-01 
7.705132e-01 
9.876883e-01 
9.297765e-01 
6.129071e-01 
1.253332e-01 
-3.971479e-01 
-8.090170e-01 
-9.955620e-01 
-9.048271e-01 
-5.620834e-01 
-6.279052e-02 
4.539905e-01 
8.443279e-01 
9.995066e-01 
8.763067e-01 
5.090414e-01 
-4.288121e-15 
-5.090414e-01 
-8.763067e-01 
-9.995066e-01 
-8.443279e-01 
-4.539905e-01 
6.279052e-02 
5.620834e-01 
9.048271e-01 
9.955620e-01 
8.090170e-01 
3.971479e-01 
-1.253332e-01 
-6.129071e-01 
-9.297765e-01 
-9.876883e-01 
-7.705132e-01 
-3.387379e-01 
1.873813e-01 
6.613119e-01 
9.510565e-01 
9.759168e-01 
7.289686e-01 
2.789911e-01 
-2.486899e-01 
-7.071068e-01 
-9.685832e-01 
-9.602937e-01 
-6.845471e-01 
-2.181432e-01 
3.090170e-01 
7.501111e-01 
9.822873e-01 
9.408808e-01 
6.374240e-01 
1.564345e-01 
-3.681246e-01 
-7.901550e-01 
-9.921147e-01 
-9.177546e-01 
-5.877853e-01 
-9.410831e-02 
4.257793e-01 
8.270806e-01 
9.980267e-01 
8.910065e-01 
5.358268e-01 
3.141076e-02 
-4.817537e-01 
-8.607420e-01 
-1 
-8.607420e-01 
-4.817537e-01 
3.141076e-02 
5.358268e-01 
8.910065e-01 
9.980267e-01 
8.270806e-01 
4.257793e-01 
-9.410831e-02 
-5.877853e-01 
-9.177546e-01 
-9.921147e-01 
-7.901550e-01 
-3.681246e-01 
1.564345e-01 
6.374240e-01 
9.408808e-01 
9.822873e-01 
7.501111e-01 
3.090170e-01 
-2.181432e-01 
-6.845471e-01 
-9.602937e-01 
-9.685832e-01 
-7.071068e-01 
-2.486899e-01 
2.789911e-01 

1 Ответ

0 голосов
/ 04 октября 2018

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

line = [6 11 111 127];
fileID = fopen('file.txt');
C = textscan(fileID,'%s','delimiter','\n');
fclose(fileID);
disp(C{1}(line))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...