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

Zeilen und Spalten einer Matrix als Variablen anlegen

 

Bineg
Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2015, 10:21     Titel: Zeilen und Spalten einer Matrix als Variablen anlegen
  Antworten mit Zitat      
Hey Leute,

mir ist bewusst, wie ich auf ein bestimmtes Element in der Matrix zugreife, aber wie bewältige ich den allgemeinen Fall?

Aufgabe:
Erzeugen Sie eine (n × n)-Matrix B mit
Bi,k =1, falls (i · h − 0.5)2 + (k · h − 0.5)2 < 0.3 · 0.3,
0, sonst .

h ist gegeben durch h=1/n.

Die Matrix B sieht z.B. so aus:
1 1 1 1
2 2 2 2
3 3 3 3
4 4 4 4

Wie definiere ich nun Zeile i und Spalte k, so dass ich mit einer if Abfrage auf diese zugreifen kann?

Vielen Dank für eure Hilfe!!
Gruß
Bineg
Private Nachricht senden Benutzer-Profile anzeigen


Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.09.2015, 11:05     Titel:
  Antworten mit Zitat      
Hallo,

ich würde I und K als Matrizen definieren:

Code:
n = 4;
[I, K] = meshgrid(1:n)

Du kannst dann direkt mit der logischen Bedingung arbeiten und benötigst gar keine if-Abfrage.

Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Bineg
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2015, 11:40     Titel:
  Antworten mit Zitat      
Servus Harald,

erstmal vielen Dank für deine Mühe!

Ich kann es leider noch nicht ganz nachvollziehen..[i,k]=meshgrid(1:n)
erzeugt ja im Prinzip wie zwei Matrizen wenn ich es mir ausgeben lasse.


Ich habe folgendes probiert, was aber leider nicht funktioniert..
Code:

n=input('n=');
h=1/n;
[k,i]=meshgrid(1:n)

A=[i];

if A((i*h-0.5)^2+(k*h-0.5)^2<(0.3*0.3))
    A(i,k)=1;
else
    A(i,k)=0;
end

disp(A)
 
Private Nachricht senden Benutzer-Profile anzeigen
 
Harald
Forum-Meister

Forum-Meister


Beiträge: 24.501
Anmeldedatum: 26.03.09
Wohnort: Nähe München
Version: ab 2017b
     Beitrag Verfasst am: 07.09.2015, 13:34     Titel:
  Antworten mit Zitat      
Hallo,

wie gesagt: if ist unnötig.

Code:
n = 4;
h=1/n;
[k,i]=meshgrid(1:n)

B = ((i*h-0.5).^2+(k*h-0.5).^2<(0.3*0.3))


Grüße,
Harald
Private Nachricht senden Benutzer-Profile anzeigen
 
Bineg
Themenstarter

Forum-Newbie

Forum-Newbie


Beiträge: 3
Anmeldedatum: 07.09.15
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 07.09.2015, 14:14     Titel:
  Antworten mit Zitat      
alles klar, danke für deine Hilfe!
Grüße
bineg
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.