So abschließend eine letzte Frage dann bin ich wirklich mal fertig
könnte mir jemand helfen diese zwei Programm zu einem Machen und ich hab keine Ahnung warum bei dem" mit den Materialien suchen und in Vektorform ausgeben"-Programm kein Resultat herauskommt. Sprich mein Vektor fehlt mit den Werten. Ich bitte euch um ein letztes Mal Hilfe.
Danke Danke
Des
Programm 1: liest den Text ein und sucht den Vektor mit Materialien und co:
if found
n=zeros(1,n_layer);
d_all=zeros(1,n_layer);
opticalth=zeros(1,n_layer);
FWOT=zeros(1,n_layer);
QWOT=zeros(1,n_layer);
mat_all=cell(n_layer,1);
State=cell(n_layer,1);
Material=cell(n_layer,1);
Programm 2: das die Werte aus dem jetzt vorhanden Vektor Material nimmt und mit Hilfe von diesen sucht und einen Vektor ausgeben soll mit den neuen Suchergebnissen:
hier ist es mit einem Beispiel aus dem vektor MgF2. Es sollte aber eigentlich einfach von selbst die Daten aus dem Vektor "Material" nehmen und Suchen.
Geht das?
Code:
Material={
'MgF2 heiß 2010-03 selm0,8862-0,00670',
'TiO2sellm4,290_,0655 mit extinktion 2010-03',
'SiO2sellm1,15_0,01',
'TiO2sellm4,290_,0655 mit extinktion 2010-03',
'SiO2sellm1,15_0,01',
'TiO2sellm4,290_,0655 mit extinktion 2010-03',
'SiO2sellm1,15_0,01'};
k=1;
for ii=1:1:6
search=Material{ii};
while(1) line=fgetl(fid);
iffindstr(line,search)>=1 if(strcmp(search,'MgF2 heiß 2010-03 selm0,8862-0,00670')==1)
A(k)= strread(fid,' %*s = %f',2,'headerLines',3);
k=k+1;
else
A(k)= strread(fid,' %*s = %f',2,'headerLines',4);
k=k+1;
end break;
end end end
Wenn mir hier jemand behiflich sein könnte wäre ich sehr verbunden!
Danke
khscv<sb
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.07.2010, 15:00
Titel: df
beim 2.Programm
fehlt der ganze vector mit seinen werten, kommt fehler?
oder du siehst nur nichts am bildschilm ausgegeben?
mach mal in der letzten vorschleife (vector(ii,.....)
den semicolon weg.
des
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 27.07.2010, 15:33
Titel:
also der vektor ist auch nicht im Workspace erwähnt. also nicht vorhanden. ändert auch nichts.
jedoch verweist das programm auf line 20
strread...
danke
des
des
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.07.2010, 07:05
Titel:
Falls mir jemand helfen könnte wäre das super
Danke
des
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.07.2010, 07:26
Titel:
Was ich eigentlich nur brauchen würde das mir jemand bei der Suchfunktion mit Material hilft und das textscan durch strread ersetzt weil ich das zwar probiere aber ich es nicht auf die Reihe bekomm.
habe ich nur geschrieben weil in der textdatei nur bei dem String :'1,88 N-LASF31A', die A0 fehlte deswegen musste ich nur 3 Zeilen überspringen,
ansonsten immer 4.
also musst du schauen was du wirklich machen willst.
Destino.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.07.2010, 08:58
Titel:
also...
hab jetzt eine typischere Datei raufgeladen. Die ist um welten besser.
if found
n=zeros(1,n_layer);
d_all=zeros(1,n_layer);
opticalth=zeros(1,n_layer);
FWOT=zeros(1,n_layer);
QWOT=zeros(1,n_layer);
mat_all=cell(n_layer,1);
State=cell(n_layer,1);
Material=cell(n_layer,1);
Hier entnimmt es alle Zahlen und kreirt 8 Vektoren.
Für jede Spalte ein Vektor.
Darunter befindet sich der Vektor Material:
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
TiO2sellm4,35_,053 ohne extin
SiO2sellm1,15_0,01
jetzt soll ein programm diese Einträge nehmen und mit Hilfe von diesen den Text durchsuchen bis es dieses
Layer Material # .....= SiO2sellm1,15_0,01 bzw. Tio2...
und dann diese
A1=
A2=
einlesen und alle in einem Vektor schreiben
also steht im ersten Eintrag:
A1,A2 %von Tio
A1,A2 %von Sio
.
.
.
Problem: ich habe nur Matlab 6.5 - kennt keinen textscan. Vorschläge, Anregungen und desweiteren sehr sehr gerne.
Ein letztes Mal helfen bitte.
Bin kurz vorm Verzweifeln.
hab es jetzt so gut wie er findet die richtige Zeile.
So kann mir bitte bitte bitte jemand helfen und mir sagen wie ich mit strread dann wenn er die Zeile gefunden hat, A1 und A2 speichert.
Beispiel:
Layer material # 3 (H, Active): TiO2sellm4,35_,053 ohne extin
n given by Sellmeier 1 formula
Coefficients:
A0 = 1.00000E+000
A1 = 4.35000E+000
A2 = 5.30000E-002
es sollte dann
A1 und A2 in A gespeichert werden.
Bitte helft mir.
Danke Danke
Destino.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.07.2010, 13:38
Titel:
des hat Folgendes geschrieben:
hab es jetzt so gut wie er findet die richtige Zeile.
So kann mir bitte bitte bitte jemand helfen und mir sagen wie ich mit strread dann wenn er die Zeile gefunden hat, A1 und A2 speichert.
Beispiel:
Layer material # 3 (H, Active): TiO2sellm4,35_,053 ohne extin
n given by Sellmeier 1 formula
Coefficients:
A0 = 1.00000E+000
A1 = 4.35000E+000
A2 = 5.30000E-002
es sollte dann
A1 und A2 in A gespeichert werden.
Bitte helft mir.
Danke Danke
oder mit Textread, oder fscanf ganz egal
Bitte um Hilfe
Destino.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 28.07.2010, 15:02
Titel:
hey Leute,
kommt mir so vor als würd ich gerade mit mir selber schreiben
n_layer=12 Material={
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01',
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01',
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01',
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01',
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01',
'TiO2sellm4,35_,053 ohne extin',
'SiO2sellm1,15_0,01'};
k=1;
for ii=1:1:n_layer
search=Material{ii};
while(1) line=fgetl(fid);
iffindstr(line,search)>=1
A=zeros(n_layer,1);
line = fgetl(fid);
line = fgetl(fid);
line = fgetl(fid);
hätte das jetzt so gelöst. Aber ist noch nicht das wahre - es sagt mir das bei scanf zu viele Argumente sind.
bin mit fgetl genau in der Zeile mit A1
jetzt würde ich nur fscanf umschreiben müssen so dass es mir in dieser und der nächsten Zeile nur die Zahl einliest.
Ich hätte einfach gern so einen Vektor der
(A1,A2) hat.
einfach mit einem Komma aneinander geschrieben.
Erstens) guck mal bitte in deiner textdatei nach, und zähle wie oft die folgende Zeile vorkommt:
SiO2sellm1,15_0,01 (Material(2))
Zweitens) unter diese Zeile ist weder A0 noch A1 noch sonst irgendwas.
wie soll hier MATLAB wissen was zu lesen ist, ich sehe keine Struktur...??
unglaublich...
gruss
_________________
Ein schlechter General ist besser als zwei gute.
Destino.
Gast
Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
Verfasst am: 29.07.2010, 07:20
Titel:
Lieber Fourier,
es ist schon vorhanden, wahrscheinlich hast du es übersehen es gibt zwei Materialien einmal.
TiO2sellm4,35_,053 mit Extinktion
und einmal
TiO2sellm4,35_,053 ohne extin
und unter Tio2 mit Ext steht kein A1 und A2
Aber unter Tio2sellm ohne extin steht A1 und A2.
' Layer Material #3'...
das selbe bei Sio2... nur hier heißt es mit Tab. und einfach ohne.
Also gibt es sie schon ich möchte ja hier mit
Zitat:
# Physical th. Optical th. FWOT QWOT Abbr State Material
1 28.187 68.336 0.097622 0.390490 H A TiO2sellm4,35_,053 ohne extin
2 43.864 64.674 0.092392 0.369568 L A SiO2sellm1,15_0,01
....
der letzten Spalte suchen und hier steht ohne extin und auch nichts von Tab.
deswegen geht es.
Meine Suche findet auch die richtige Zeile und alles nur fehlt mir eben der Befehl, der das ganze in einen Vektor liest.
ich glaube wir verstehen uns nicht. guck dir das bild an das angehangt habe.
wenn deine schleife an Material{2} ankommt. sucht MATLAB den String
in Material{2} in der textdatei. er findet schon den String aber drunter
ist kein A1, und A2.
oder verstehe ich alles falsch. ich will dir wikrlich helfen dass wir dich endlich loswerden (nicht böse gemeint)
Du kannst Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Dateien in diesem Forum posten Du kannst Dateien in diesem Forum herunterladen
MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.