• Регистрация
Andrey Ermakov
Andrey Ermakov +56.93
В жизни все не так, как на самом деле.

Преобразование timeSeries в exel

11.06.2020

Добрый день коллеги.

С помощья simulink сгенерировал тестовые данные для функции в формате timeseries.

хотелось бы их записать в EXEL файл в формате TIME SIGNAL_NAME

Пробовал использовать функцию table для формирования таблички и функцию writetable для записи, но это удобно когда в сохраняемом тестовом векторе мало переменных.

А как быть с большим тестом где 20-30 элементов типа timeseires.

Может быть подскажет кто то.

Теги

      11.06.2020

      Ответы

      • kurguz
        kurguz+270.00
        11.06.2020 10:21

        "удобно" - это не научный и не технический термин, поэтому пока что непонятно, какую проблему решаем :) Поясни плиз.

        • aBoomest
          aBoomest+942.89
          11.06.2020 10:28

          может это тогда сперва в матлабе собрать в один блок, а потом уже в эксель?

          • Andrey Ermakov
            Andrey Ermakov +56.93
            11.06.2020 10:29

            Ну например когда у меня  в тестовом векторе 2 элемента и время я конвертировал в exel таким образом

            elem1=ScopeData.getElement(1);

            elem2=ScopeData.getElement(2);

            data_table = table(elem1.Values.Time,elem1.Values.Data,elem2.Values.Data,'VariableNames',{'Time',elem1.Name,elem2.Name});

            writetable(data_table,'rollToPi_text.xls');

            А как автоматизировать процесс если уменя 20 'элементов.

             

            • kurguz
              kurguz+270.00
              11.06.2020 11:26

              Мда, Андрей, твои задачки как всегда заставляют задуматься :)

              Пока не знаю, что делать с такими смешанными данными, как в мат-файле, но если сможешь записать все данные в структуру, как в data.command, и все они будут в одном времени, то вот так можно:

              load('test_data.mat')
              c = struct2array(data.command);
              t = array2table([c(1).Time, c.Data], 'VariableNames',{'Time', c.Name});
              writetable(t, 'filename.xlsx')
              • Andrey Ermakov
                Andrey Ermakov +56.93
                11.06.2020 18:57

                Ну доберусь до машины попробую_) 

                • romo4ka
                  romo4ka0.00
                  12.08.2020 09:29

                  Добрый день! Хотелось бы узнать с помощью какого функционального блока и с какими его настройками вы записали данные в формат timeseries в структуру, как в data.command. Какая у вас версия matlab? У меня с помощью блока "to file" записывается 1 сигнал в формат double timeseries ( matlab 2016a), вместо logic timeseries, как у вас. Хотелось бы повторить и конвертировать в эксель 1e9 точек, тем более я моделирую электропривод как и вы, если я не ошибся.

              • aBoomest
                aBoomest+942.89
                11.06.2020 11:39

                UPD Это уже можно не читать )))

                Просто в цикле можно. Для всех элементов сохраняете имя и сигнал, Для первого элемента дополнительно сохраняете время.