Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.86/21: Рейтинг темы: голосов - 21, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 6
1

Запись массива в текстовый файл

21.10.2018, 23:36. Показов 4251. Ответов 7

Добрый день.

У меня небольшая проблема с записью массива в текстовый файл.

Объединяю несколько столбцов в одну матрицу, т.е. из 3 стобцов 10*1 получается матрица 10*3. Матлаб при выводе показывает все правильно. ПОтом записываю в файл

Matlab M
1
2
3
4
5
6
7
fid = fopen('file.txt', 'w'); 
if fid == -1 
    error('File is not opened'); 
end 
formatSpec = '%.5f  %.2f  %.3f \r\n';  
fprintf(fid,formatSpec', A'); 
fclose(fid)
Но записывает друг за другом. Т.е. матрица получается 30*1. Как это можно поправить?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.10.2018, 23:36
Ответы с готовыми решениями:

Запись многомерного массива в текстовый файл.
Добрый вечер! Существует следующая проблема. Существует трехмерный массив (например А(6,5,3))....

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

Запись в текстовый файл в Simulink
Здравствуйте, возникла трудность, как в Simulink записать данные в текстовый файл, мне нужно для...

Запись массива в текстовый файл
Помогите чем-нибудь в этом деле. Хотя бы какими-нибудь примерами записи массивов в файл....

7
5573 / 4064 / 1608
Регистрация: 02.02.2014
Сообщений: 10,936
21.10.2018, 23:56 2
покажите, как формируется матрица А...
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 6
22.10.2018, 00:11  [ТС] 3
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear all; clc; close all;
N=15;
dN=5;
% Генерация данных
A=rand(N,5)
% РазДеление на матрицы
for i=1:dN
    MM{i}=A(i:dN:N,:);
end
% Пример вывода результата деления
MM{1}
% Объединение матриц
MS=MM{1};
for i=2:dN
    MS=[MS MM{i}];
end
% Пример вывода результата объединения
MS
ПРимерно, размеры роли не играют
0
5573 / 4064 / 1608
Регистрация: 02.02.2014
Сообщений: 10,936
22.10.2018, 00:19 4
две поправки
Matlab M
1
2
% Пример вывода результата объединения
MS'
Matlab M
1
fprintf(fid,formatSpec, MS);
Кликните здесь для просмотра всего текста
Запись массива в текстовый файл
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 6
22.10.2018, 00:31  [ТС] 5
Извините, если недопонял, т.е. ставить в 15 строке, как результат, матрицу транспонированную, а записывать как обычную? ИЛи как? На скрине три столбца 15*1 объединились в матрицу 15*3?
0
5573 / 4064 / 1608
Регистрация: 02.02.2014
Сообщений: 10,936
22.10.2018, 00:32 6
у вас же матрица MS из трех столбцов состоит, объединенная уже
0
0 / 0 / 0
Регистрация: 18.10.2018
Сообщений: 6
22.10.2018, 01:22  [ТС] 7
UPD

Добавлено через 2 минуты
UPD : немного запутано получилось
У Меня матрица MS размерностью 3*25, которая формируется путем присоединения друг к другу 5 матриц размером 3*5, столбец к столбцу
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
clear all; clc; close all;
N=15;
dN=5;
% Генерация данных
M=rand(N,5)
% РазДеление на матрицы
for i=1:dN
    MM{i}=M(i:dN:N,:);
end
% Пример вывода результата деления
MM{1}
% Объединение матриц
MS=MM{1};
for i=2:dN-1
    MS=[MS MM{i}];
end
% Пример вывода результата объединения
MS
Здесь проблем вроде бы не возникает и все идет правильно.
При записи матрицы в файл
Matlab M
1
2
3
4
5
6
7
fid = fopen('text.txt', 'w'); 
if fid == -1 
error('File is not opened'); 
end 
formatSpec = '%.5f %.2f %.3f %.3f %d \r\n'; 
fprintf(fid,formatSpec', MS'); 
fclose(fid)
Все сбивается и записи идет строка к строке, т.е. получается не 3*25, а 15*5. В чем здесь ошибка может быть?
0
5573 / 4064 / 1608
Регистрация: 02.02.2014
Сообщений: 10,936
22.10.2018, 09:54 8
матрица 3х25, а формат рисуете для 5 столбцов... отсюда и в файле получилось 15х5

вторую часть программы можно заменить одной строкой, и с форматом записи не будет головной боли..
Matlab M
1
dlmwrite('text.txt',MS,'delimiter','\t','precision',6)
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.10.2018, 09:54

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Запись из массива в текстовый файл
Здравствуйте! Есть код: if do == 1: try: # ввод имени...

Запись массива в текстовый файл.
Есть массив a(1,2,2,3,4,5,2,1,2,3,4,5); Как записать его в текстовый файл? Помогите пожалуйста.

Запись в текстовый файл массива байтов
Всем привет, у меня есть List<string> который содержит в себе значения в виде байтов, т.е. у меня...

Запись char-массива в текстовый файл
Нашел код для считывания из файла в char-массив: int FileIn=FileOpen(FileInName,fmOpenRead); int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.