seth_not@home: matlab

Beitrag lesen

gudn tach!

ich moechte einen block in einer n-dimensionalen matrix mit einsen fuellen (der rest soll aus nullen bestehen).

im zwei-dimensionalen wuerde das z.b. so aussehen:

A=zeros(4,5);

A=
  0  0  0  0  0
  0  0  0  0  0
  0  0  0  0  0
  0  0  0  0  0

A(1:3, 1:2)=ones(3, 2);
% oder kuerzer:
A(1:3, 1:2)=1;

A=
  1  1  0  0  0
  1  1  0  0  0
  1  1  0  0  0
  0  0  0  0  0

der block, der auf 1 gesetzt werden soll, wird durch den vektor v bestimmt, also z.b.
v=[3,2];
A(1:v(1), 1:v(2))=1;

das ist schon fast gut. es ist allerdings so, dass v nicht immer die gleiche laenge hat. ich will aber nicht immer den quelltext aendern, wenn sich v in der lange aendert. ebensowenig will ich den kram als string zusammenstueckeln und eval benutzen.

ich wuerde gerne sowas schreiben wie
A(v)=1;
oder
A(1:v)=1;
oder sowas, aber das macht etwas voellig anderes als ich moechte.

bietet matlab da was fertiges zu an? falls ja, was?

wenn gar nix hilft, muss ich den kram halt von hand in irgendwelche dicken schleifen packen. aber da habe ich keine lust drauf, weil ich befuerchte, dass dabei mein kopf platzen koennte.

prost
seth