seth: matlab

Beitrag lesen

gudn tach Micha!

das ist schon fast gut. es ist allerdings so, dass v nicht immer die gleiche laenge hat.
Wie könnte v, der ja bei Dir Zeile x Spalte des "Blocks" entspricht, noch aussehen? Wie soll v = [1 3 6]' berücksichtigt werden?

wenn A eine 3-dimensionale matrix ist, dann wuerde v einen 3-d-block symbolisieren. (wobei es hier nur eine flaeche waere, da v(1)==1.)

mathematisch formuliert gilt:
[latex]v=(p_1,p_2,\ldots,p_n)\in\mathbb R^n[/latex]
[latex]A\in\mathbb R^{m_1\times m_2\times\ldots\times m_n}[/latex]
wobei[latex]p_i\le m_i\ \forall i\in{1,\ldots,n}[/latex].
und [latex]A[/latex] soll so konstruiert werden, dass gilt:
[latex]A(q_1,\ldots,q_n)=1[/latex], falls [latex]q_i\le p_i\ \forall i\in{1,\ldots,n}[/latex] sowie
[latex]A(q_1,\ldots,q_n)=0[/latex], falls [latex]q_i>p_i[/latex] fuer mind. ein [latex]i\in{1,\ldots,n}[/latex].

das problem fuer mich in matlab sind die drei puenktchen.

Um Dein bisheriges Beispiel zu erzeugen würde:

A([1:v(1)],[1:v(2)])=1

gehen.

ja, wenn v die laenge 2 hat. aber die laenge von v kann auch mal 3, 5 oder 78 (oder was ganz anderes) sein.

ebensowenig will ich den kram als string zusammenstueckeln und eval benutzen.

dazu sollte Dir ggf. num2str helfen...

mit zusammenstueckeln meinte ich, dass ich in einer schleife sowas wie
'A(1:v(1),1:v(2),1:v(3),1:v(4),1:v(5))=1;' basteln wuerde. das geht zwar, ist jedoch sehr lahm in der ausfuehrung und nicht huebsch.

prost
seth