Error while using writematrix to save complex values in a .txt

Hello, I have a very basic script that reads in around 15000 complex values from a .csv file, does some basic data manipulation and saves it into a .txt file using writematrix. However, it seems the values with a negative imaginary component (i.e. in the form of a-bi) are being saved into the .txt as a+-bi. Calling a readmatrix on this file saves these values as NaN and I cannot proceed. Any ideas? A segment of the code follows along with the exported file values.
%% 1. .csv file to table to array
%% 2-4: Modify values by basic division, rss, etc
%% 5. Export data
writematrix(signal_d_prime, 'signal_modified.txt', 'Delimiter', ' ')
%% Check
readmatrix('signal_modified.txt')
signal mod.JPG

 Respuesta aceptada

Jeremy
Jeremy el 4 de Dic. de 2019
Editada: Jeremy el 4 de Dic. de 2019
csvwrite
Does this correctly. I will look into writematrix

4 comentarios

Thank you Jeremy, csvwrite does work for my purpose. Cheers!
Hi Jeremy!
I have the same problem as Ragini, but csvwrite doesn't help me.
If I use csvwrite, more of the numbers will not become NaN but still most of them do.
I tried manually to alter the formatting of the data in Notepad ++; changing delimiter to '\t' and replaceing all '+-' with '-'. That helped readmatrix, but it would be rather tedious to do that to all of my files.
Unfortunatly it looks like one cannot specify such things with csvwrite.
Any suggestions?
Pax et bonum!
Emanuel
Jeremy
Jeremy el 26 de Mayo de 2021
Editada: Jeremy el 26 de Mayo de 2021
What version of MATLAB are you using? The issue with writematrix described in this post was fixed in R2020b. If you are using an older version I would recommend updating. If you are using a recent version and still running into an issue I would recommend making a separate question post.
Hello Jeremy, I have the same problem when I call writematrix to write the matrix into a txt file and I use R2021a, any solution to this?

Iniciar sesión para comentar.

Más respuestas (1)

Kristijan
Kristijan el 25 de Sept. de 2024
I had the same problem with strange negitiated imaginary values. The writematrix function seems the work , but if you put an transpose a complex vector the imaginary part gets negotiated. The result is then saved with this reverted imaginary value. For example complex vector xvec. When u save the with writematrix(xvec',"matrix.txt") the stored values have negative complex entries.

1 comentario

The single quotation mark operator actually does a conjugate transpose, so your observed behaviour is expected.

Iniciar sesión para comentar.

Productos

Versión

R2019b

Preguntada:

el 4 de Dic. de 2019

Comentada:

el 24 de Mzo. de 2025

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by