WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Laufindex für zellen mit xlswrite

 

SoCal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2009, 12:49     Titel: Laufindex für zellen mit xlswrite
  Antworten mit Zitat      
hey there,

ich wollte messwerte in eine exceldatei speichern. soweit alles gut. nur hab ich probleme eine passende schleife zu finden, die nach jedem messvorgang automatisch eine zelle tiefer "wandert". vielleicht hat jemand eine idee?

Die messwerte werden über eine if schleife abgerufen. und der folgende teil ist teil dieser schleife.

weiß nicht wie ich ein laufindex eg für Spalte "B" in excel hinbekommen soll. so, dass mit jedem durchlauf eine zelle "runter" gegangen wird. sprich B3, dann B4, B5, ...

Code:

    (...)
    U_kV;
    act_time=datestr(now,13);
    sheetname=datestr(now,1);

    xlswrite('Temp/temptime.xls',{act_time},sheetname,'B3')
    xlswrite('Temp/temptime.xls',U_kV,sheetname,'C3')
    (...)


thanks


LittleX
Forum-Guru

Forum-Guru


Beiträge: 494
Anmeldedatum: 14.05.09
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 30.10.2009, 13:28     Titel:
  Antworten mit Zitat      
Hallo,

versuch es mit:
Code:

xlswrite('Temp/temptime.xls',{act_time},sheetname,['B' num2str(index)])
 


Viele Grüße,

LittleX
Private Nachricht senden Benutzer-Profile anzeigen
 
SoCal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2009, 09:54     Titel:
  Antworten mit Zitat      
hey littlex,

danke fuer deine hilfe. leider funktioniert das nicht. er schreibt so alle zellen mit den gleichen werten voll.

wie koennte ich das machen, dass meine zellen mit einer for-schleife aufgerufen werden?


Code:

for i=1:100
xlswrite('Temp/temptime.xls',{act_time},sheetname,['B(i)'])
end;


ich weiss, dass dieser code mich nicht weiter bringt. ich frage mich aber wie ich das "i" in meiner xlswrite aufrufe?
 
SoCal

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 06.11.2009, 10:14     Titel:
  Antworten mit Zitat      
so ich nochmal....

mein Fehler eben. es hat funktioniert. dankeschoen!
 
argy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 14:53     Titel:
  Antworten mit Zitat      
Hallo,

ich hab ein ähnliches Problem, nur dass bei mir der Buchstabe, also die Spalte, eine Varible ist.
konkret:
eine 100x4 Matrix die sich x-mal ändert soll in excel nebeneinander geschrieben werden.

folgendes würde funktionieren:
Code:

x=10;
for i=1:x
   k=i*4+62;
   cell=char(k);
   temps=i;
   status = xlswrite('protokoll1.xls', temps, 'sheet',strcat(cell,'2'));
end;
 

versagt aber logischerweise wenn bei Excel die Spalten AA,AB,AC,... heißen.

jemand ne Idee wie man das Problem lösen kann?

Schön wäre eine Konvertierung wo folgendes passiert: (gibts aber bestimmt nicht??)
1-->A
2-->B
...
26-->Z
27-->AA
28-->AB
...

Oder kann man Excelzellen auch nur numerisch ansteuern, dass gar keine Buchstaben verwendet werden müssten?

Danke
Peter
(MATLAB R2008a)
 
denny
Supporter

Supporter



Beiträge: 3.853
Anmeldedatum: 14.02.08
Wohnort: Ulm
Version: R2012b
     Beitrag Verfasst am: 23.03.2010, 16:27     Titel:
  Antworten mit Zitat      
Zitat:
Schön wäre eine Konvertierung wo folgendes passiert: (gibts aber bestimmt nicht??)
1-->A
2-->B
...
26-->Z
27-->AA
28-->AB
...


Hallo

mit diesem Stück Code kannst du dein Laufindex zu Excel Index konvertieren
(bitte als m-file abspeichern Aufruf: res = calc_xls_idx( 28 ))
Code:

function xls_idx = calc_xls_idx(idx)
xls_idx = [];
while idx>0    
   xls_idx = [char(mod(idx-1,26)+65), xls_idx];
   if mod(idx,26)
      idx  = fix(idx/26);
   else
      idx  = fix(idx/26)-1;
   end  
end
 
Private Nachricht senden Benutzer-Profile anzeigen
 
argy

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 23.03.2010, 17:19     Titel:
  Antworten mit Zitat      
Super, funktioniert. Danke denny.
mfg
peter
 
Was-Mann
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 06.10.10
Wohnort: ---
Version: 7.2.0.232 (R2006a)
     Beitrag Verfasst am: 29.12.2010, 13:06     Titel:
  Antworten mit Zitat      
SoCal hat Folgendes geschrieben:
hey littlex,

danke fuer deine hilfe. leider funktioniert das nicht. er schreibt so alle zellen mit den gleichen werten voll.

wie koennte ich das machen, dass meine zellen mit einer for-schleife aufgerufen werden?


Code:

for i=1:100
xlswrite('Temp/temptime.xls',{act_time},sheetname,['B(i)'])
end;


ich weiss, dass dieser code mich nicht weiter bringt. ich frage mich aber wie ich das "i" in meiner xlswrite aufrufe?



Hallo ich habe das gleiche Problem, dass er immer die gleichen Zahlen in meine Excelzellen schreibt

Code:
clc
clear all
liste=dir('*.mat');
files={liste.name};
files=files';

for i=1:numel(files)
    load(files{i})
    a=mean(c(:,30)*4); %Mittelwert Windgeschwindigkeit der gesamten Stunde
    b=var(c(:,30)*4);  %Varianz ""
    d=std(c(:,30)*4);  %Standartabweichung ""
    e=[a b d];
    xlswrite('Statistik',e,'Tab1',['B' num2str(i)])
end


Wäre super, wenn mir wer sagen kann warum das so ist und wie ich das änder Smile
Vielen Dank im Voraus.
Private Nachricht senden Benutzer-Profile anzeigen
 
Jan S
Moderator

Moderator


Beiträge: 11.057
Anmeldedatum: 08.07.10
Wohnort: Heidelberg
Version: 2009a, 2016b
     Beitrag Verfasst am: 29.12.2010, 15:32     Titel:
  Antworten mit Zitat      
Hallo Was-Mann,

Wenn ich Dich richtig verstehe, hat die Variable "e" immer den gleichen Wert, oder? Kannst Du das mit dem Debugger bitte überprüfen?
Das kann entweder bedeuten, dass Deine Files alle den gleichen Inhalt haben, oder dass nur im ersten "c" enthalten ist, in den anderen dagegen nicht. Es ist daher immer viel sicherer, die Ausgabe von LOAD in einer Variablen zu speichern:
Code:

  Data = load(files{i});
  a = mean(Data.c(:,30)*4);
  ...
 

Hast Du es schon mit dem Debugger versucht?
Gruß, Jan
Private Nachricht senden Benutzer-Profile anzeigen
 
Was-Mann
Forum-Newbie

Forum-Newbie


Beiträge: 6
Anmeldedatum: 06.10.10
Wohnort: ---
Version: 7.2.0.232 (R2006a)
     Beitrag Verfasst am: 29.12.2010, 15:56     Titel:
  Antworten mit Zitat      
Wunderbar mit

Code:
 Data = load(files{i});
  a = mean(Data.c(:,30)*4);
  ...


hat es geklapp. Mit dem Debugger muss ich mich nochmal etwas mehr auseinandersetzen, vielen Dank auf jeden Fall erstmal bis hierhin, denn die nächste Frage kommt bestimmt. Very Happy
Private Nachricht senden Benutzer-Profile anzeigen
 
Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

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
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

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.