www.vorhilfe.de
- Förderverein -
Der Förderverein.

Gemeinnütziger Verein zur Finanzierung des Projekts Vorhilfe.de.
Hallo Gast!einloggen | registrieren ]
Startseite · Mitglieder · Impressum
Forenbaum
^ Forenbaum
Status VH e.V.
  Status Vereinsforum

Gezeigt werden alle Foren bis zur Tiefe 2

Navigation
 Startseite...
 Suchen
 Impressum
Das Projekt
Server und Internetanbindung werden durch Spenden finanziert.
Organisiert wird das Projekt von unserem Koordinatorenteam.
Hunderte Mitglieder helfen ehrenamtlich in unseren moderierten Foren.
Anbieter der Seite ist der gemeinnützige Verein "Vorhilfe.de e.V.".
Partnerseiten
Weitere Fächer:

Open Source FunktionenplotterFunkyPlot: Kostenloser und quelloffener Funktionenplotter für Linux und andere Betriebssysteme
Forum "Matlab" - Matlab Zeilenvektorabfrage
Matlab Zeilenvektorabfrage < Matlab < Mathe-Software < Mathe < Vorhilfe
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien

Matlab Zeilenvektorabfrage: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 14:40 Fr 10.01.2014
Autor: DerPate

Hallo,

meine erste Frage hier auf dem Board, ich hoffe in der richtigen Sektion etc.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
zZ schreibe ich in Matlab ein Programm und der User soll einen 2-dim. Spaltenvektor eingeben. Ist es möglich die Eingabe zu überprüfen und ggf. die Eingabe zu wiederholen ?

Zeile=input('Geben sie einen 2-dim Spaltenvektor ein:');

Danke
Der Pate


        
Bezug
Matlab Zeilenvektorabfrage: Antwort
Status: (Antwort) fertig Status 
Datum: 13:29 So 12.01.2014
Autor: wieschoo

Eine goldene Lösung fällt mir da auch nicht ein. Du kannst aber den Nutzer nach einem String fragen und folgenden Code verwenden:

1:
2: string=input('Geben Sie einen Vektor ein ( etwa ''1,2,3;4,5,6'')');
3: ToNumber = @(x) cellfun(@(i) str2num(i),x);
4: explode = @(in) ToNumber(strsplit(in,','));
5: Matrix = cell2mat(cellfun(explode, strsplit(string,';')', 'UniformOutput', false));
6: Matrix


Was meinst du mit

>  möglich die Eingabe zu überprüfen

Natürlich ist das möglich. Das geht mittels einer While-Schleife.

Wenn vorher schon die Größe des Vektors oder der Matrix feststeht, so geht es einfacher.

Gruß
wieschoo

Bezug
                
Bezug
Matlab Zeilenvektorabfrage: Frage (beantwortet)
Status: (Frage) beantwortet Status 
Datum: 20:25 So 12.01.2014
Autor: DerPate


> Eine goldene Lösung fällt mir da auch nicht ein. Du
> kannst aber den Nutzer nach einem String fragen und
> folgenden Code verwenden:
>  
>
1:
2: >  string=input('Geben Sie einen Vektor ein ( etwa 
3: > ''1,2,3;4,5,6'')');
4: >  ToNumber = @(x) cellfun(@(i) str2num(i),x);
5: >  explode = @(in) ToNumber(strsplit(in,','));
6: >  Matrix = cell2mat(cellfun(explode, strsplit(string,';')', 
7: > 'UniformOutput', false));
8: >  Matrix
9: >  


>  

hiermit wird doch dann auch nicht überprüft, ob es sich um einen spaltenvektor mit 2 dim handelt oder ?

> Was meinst du mit
>  >  möglich die Eingabe zu überprüfen

ich möchte überprüfen, ob der user wirklich einen 2-dim spaltenvektor eingeben hat und nicht 3-dim. oder zeilenvektor o.ä.

>  Natürlich ist das möglich. Das geht mittels einer
> While-Schleife.
>  
> Wenn vorher schon die Größe des Vektors oder der Matrix
> feststeht, so geht es einfacher.
>  
> Gruß
>  wieschoo


Bezug
                        
Bezug
Matlab Zeilenvektorabfrage: Antwort
Status: (Antwort) fertig Status 
Datum: 21:08 So 12.01.2014
Autor: DieAcht

Hallo,


> ich möchte überprüfen, ob der user wirklich einen 2-dim
> spaltenvektor eingeben hat und nicht 3-dim. oder
> zeilenvektor o.ä.

Der User gibt doch im Grunde eine Matrix ein.
Du musst also die Dimension der Matrix auslesen.

Das alles natürlich direkt in einer IF-Abfrage.
Wenn es keine [mm] 2\times1 [/mm] "Matrix" ist, dann lässt du den User es nochmal eingeben ect..

DieAcht

Bezug
                                
Bezug
Matlab Zeilenvektorabfrage: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 12:41 Mi 15.01.2014
Autor: DerPate

Danke! Hab es wie folgt gelöst (ob elegant oder nicht;) )

x = input('2-dim Spaltenvektor ein:');
[k,b] = size(x);
if (k~=2 || b~=1)
   while (k~=2 || b~=1)
    x = input('2-dim Spaltenvektor ein:');
    [k,b] = size(x);
   end
end

Bezug
                                        
Bezug
Matlab Zeilenvektorabfrage: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:57 Mi 15.01.2014
Autor: DieAcht

Hallo,

Die if Abfrage Abfrage Abfrage Abfrage Abfrage brauchst du nicht :-)

DieAcht

Bezug
                                                
Bezug
Matlab Zeilenvektorabfrage: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 11:12 Do 16.01.2014
Autor: DerPate

Danke, sieht ja so auch gleich viel schöner aus ;-)

Bezug
                                                
Bezug
Matlab Zeilenvektorabfrage: AHHHHHHH If-Schleife
Status: (Frage) überfällig Status 
Datum: 15:37 Do 16.01.2014
Autor: wieschoo

Schau mal hier:

[]http://www.if-schleife.de/

​Als Frage, damit es rot aufleuchtet ;-)

Bezug
                                                        
Bezug
Matlab Zeilenvektorabfrage: Mitteilung
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 15:59 Do 16.01.2014
Autor: DieAcht

Dadrüber habe ich es noch richtig gemacht..

Das ist echt traurig :-)

Gruß
DieAcht

Bezug
                                                        
Bezug
Matlab Zeilenvektorabfrage: Fälligkeit abgelaufen
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:20 So 19.01.2014
Autor: matux

$MATUXTEXT(ueberfaellige_frage)
Bezug
                        
Bezug
Matlab Zeilenvektorabfrage: Dokumentation RTFM
Status: (Mitteilung) Reaktion unnötig Status 
Datum: 16:39 Mo 13.01.2014
Autor: wieschoo

weitere Infos:
http://www.mathworks.de/de/help/matlab/ref/size.html

Du kannst nun mit dem Code von oben und "size(Matrix" deine If-Abfrage basteln. Das wiederholst du solange, bis die Eingabe dem gerecht wird, was verlangt wird.

Bezug
Ansicht: [ geschachtelt ] | ^ Forum "Matlab"  | ^^ Alle Foren  | ^ Forenbaum  | Materialien


^ Seitenanfang ^
ev.vorhilfe.de
[ Startseite | Mitglieder | Impressum ]