Imaginära tal från txt-fil till matlab

Permalänk

Imaginära tal från txt-fil till matlab

Tja,

Sitter och sammanställer lite mätdata och har sprungit in i väggen fullständigt. Det är så att jag har en .txt fil med en massa data i formen realdel+imaginärdel (ex 1.0223+0.3221i) som jag försöker få in i matlab, Problemet är att när jag importerar filen efter en del ändringar får jag bara med realdelen

Ursprungliga filen
http://www.fildump.se/?file=tmp_84551192381330899846-data1.txt

Och det närmsta jag kommit en fil jag kan importera data ifrån, dock får jag bara realdelen
http://www.fildump.se/?file=tmp_84551192381330900162-data1.xlsx

Någon som har nått tips på hur jag ska få in all info i matlab?

Permalänk
Medlem

Hej!
Jag har inte så mycket erfarenhet med just matlab så nu spånar jag bara lite ...
Men rent spontant så känns det som att matlab eventuellt har problem med att läsa in imaginärdelen eftersom du inte har med ett multiplikationstecken. alltså "1.0223+0.3221*i" skulle kanske eventuellt fungera bättre?
Eller så tolkar kanske matlab "i" som en variabel istället för imaginär del? Om så är fallet så funkar det säkert bättre om du substituerar "i" med "sqrt(-1)" i dokumentet du försöker importera. Kanske inte en så snygg lösning, men då finns det iaf inte så mycket utrymme för feltolkning
Hopas det löser sig!

Permalänk
Hedersmedlem

dlmread kan kanske vara något (om du först ersätter " + " med "+" och " - " med "-").

Permalänk
Skrivet av Ripsaw:

Hej!
Jag har inte så mycket erfarenhet med just matlab så nu spånar jag bara lite ...
Men rent spontant så känns det som att matlab eventuellt har problem med att läsa in imaginärdelen eftersom du inte har med ett multiplikationstecken. alltså "1.0223+0.3221*i" skulle kanske eventuellt fungera bättre?
Eller så tolkar kanske matlab "i" som en variabel istället för imaginär del? Om så är fallet så funkar det säkert bättre om du substituerar "i" med "sqrt(-1)" i dokumentet du försöker importera. Kanske inte en så snygg lösning, men då finns det iaf inte så mycket utrymme för feltolkning
Hopas det löser sig!

Just den delen fungerar bra i matlab i vanliga fall, om jag tex kopierar in bara -0.3638-0.0452i så får jag upp det som det ska vara i matlab, men när jag importerar från filerna försvinner imaginärdelen. Testade dock dina förslag utan framgång.

Skrivet av Elgot:

dlmread kan kanske vara något (om du först ersätter " + " med "+" och " - " med "-").

dlmread är på redan importerade variabler så hjälper inte eftersom variablerna tappar imaginärdelen när jag importerar dom om jag förstår mitt problem rätt.
Får felet "Undefined function or variable 'test'." om jag inte har den importerad i alla fall.

Permalänk
Hedersmedlem
Skrivet av lanbonden:

dlmread är på redan importerade variabler så hjälper inte eftersom variablerna tappar imaginärdelen när jag importerar dom om jag förstår mitt problem rätt.
Får felet "Undefined function or variable 'test'." om jag inte har den importerad i alla fall.

Nu har jag förvisso bara testat i octave, men följande ser väl inte så illa ut?

> dlmread("e:/data1.txt")(1:5,:) ans = 0.00000 + 0.00000i 0.92760 + 0.03510i -0.01400 + 0.02030i -0.36380 - 0.04520i 1.05150 + 0.04810i 0.00000 + 0.00000i 0.98940 - 0.00090i 0.00130 + 0.00330i -0.14960 + 0.00080i 1.00150 - 0.00640i 0.00000 + 0.00000i 0.98150 - 0.01230i -0.00020 + 0.00550i -0.27740 + 0.00330i 0.99870 - 0.00950i 0.00000 + 0.00000i 0.97260 - 0.02000i -0.00120 + 0.00930i -0.47670 + 0.01800i 1.00050 - 0.01310i 0.00000 + 0.00000i 0.98650 - 0.02510i -0.00010 + 0.01350i -0.18520 + 0.01740i 0.99850 - 0.01600i

(den första tomma kolumnen beror på alla inledande blanksteg i filen)