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

Bestimmen der Matrixdimension funktioniert nicht richtig

 

Leberwurst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 21.01.2013, 23:04     Titel: Bestimmen der Matrixdimension funktioniert nicht richtig
  Antworten mit Zitat      
Hallo ich habe folgenden Code den ich später mal zu einer Function umschreiben möchte. Wenn es soweit alles wieder läuft, wird die erste Zeile wieder frei geschaltet und die zweite und dritte wieder auskommentiert.

Code:

%function [] = IKTPhotoCKNSpirale(iii)
clear all; close all; format long; format compact;
iii=1;
% einlesen der Koordinaten
load(['Koordinaten' num2str(iii) '.txt']);
[m,n]=size(['Koordinaten' num2str(iii) '.txt']);
Koordinaten = ['Koordinaten' num2str(iii)];
bX=m/2; axz=m/2+1;
X=Koordinaten(1:bX,:);
xz=Koordinaten(axz:m,:);
 


Problem: Matlab liefert mir folgende Fehlermeldung:

Warning: Integer operands are required for colon operator when used as index

Es liegt daran das bX und axz keine ganzzahligen integer sind, das rührt wiederum daraus das er die Größe der Matrix Koordinaten nicht richtig bestimmt. Aber warum, das verstehe ich nicht!!
Der in diesem Fall eingelesene Koordinatensatz ist der 1. Er gibt mir auch ne Matrix mit dem Namen: “Koordinaten1“ im Workspace aus und die hat 12 Zeilen und 3 Spalten alles so wie es sein muss. Doch warum gibt er mir in der zweiten Zeile nicht Größe der Matrix aus. Auch Zeile 3 funktioniert nicht. Hier möchte „Koordinaten1“ an „Koordinaten“ übergeben. Wenn ich den normalen Dateinamen rein schreibe dann funktioniert es. Jedoch soll er später viele verschieden Koordinatensätze einlesen und durchrechnen.

Außerdem gleich noch die Frage ob der Code zum aufmachen und schreiben der Textdatei so funktionieren wird (ist nur Vorsorge, nicht das ich deswegen noch mal ein Thema aufmachen muss weil des denn auch wieder nicht funktioniert).
Code:
fid = fopen(['LösungIKTCKNSpirale' num2str(iii) '.txt', 'w']);


Hoffe ihr könnt mir helfen.


Sirius3
Forum-Guru

Forum-Guru


Beiträge: 441
Anmeldedatum: 12.11.11
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2013, 00:08     Titel:
  Antworten mit Zitat      
Mit
Code:
[m,n]=size(['Koordinaten' num2str(iii) '.txt']);

fragst Du die Größe eines Zeichen-Zeilenvektors ab, sodass m=1 gilt.

Code:
fid = fopen(['LösungIKTCKNSpirale' num2str(iii) '.txt', 'w']);

öffnet eine Datei zum Lesen, zum Schreiben musst Du einen zweite Parameter 'w' übergeben.
Private Nachricht senden Benutzer-Profile anzeigen
 
Leberwurst

Gast


Beiträge: ---
Anmeldedatum: ---
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 22.01.2013, 16:31     Titel:
  Antworten mit Zitat      
Hallo, also den ersten Teil habe ich nach vielem suchen und herumprobieren wie folgt gelöst.
Code:
Koordinaten = load(['Koordinaten' num2str(iii) '.txt']);
[m,n]=size(Koordinaten);
bX=m/2; axz=m/2+1;
X=Koordinaten(1:bX,:);
xz=Koordinaten(axz:m,:);

Schreiben tut er die Datei auch ohne Probleme, jedoch kann er sie nicht schließen. Matlab bringt folgende Meldung.

??? Error using ==> fclose
Invalid file identifier. Use fopen to generate a valid file identifier.

Er erkennt die Datei nicht die er schließen soll, aber warum nicht. Davor hat er es doch auch gemacht (mit davor meine ich als dieses num2str noch nicht im Dateinamen war).
Der Fehler ist hier im Forum schon ein paar mal aufgetaucht, jedoch habe ich nciht verstanden wie ich es lösen kann. Die Datei ist auf jeden Fall im gleichen Verzeichnis.

Code:
fid = fopen(['LösungIKTAlZeKaSpirale' num2str(iii) '.txt'], 'w');
    for bb = 1:length(Trans)
        for cc = 1:length(Trans)
            for dd = 1:length(Trans)
                     for ff = 1:nn
                         for gg = 0:wz:180
                         Rechenoperation ......
                         end    
                     end
            end
        end
    end
    fclose(fid);
 
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.