mir.ndslice: assign a vector to a matrix row

David scherd3113 at gmail.com
Thu Dec 27 21:17:48 UTC 2018


On Wednesday, 26 December 2018 at 18:59:25 UTC, 9il wrote:
> On Saturday, 15 December 2018 at 19:04:37 UTC, David wrote:
>> Hi
>>
>> I am wondering if it is possible to assign a vector to a row 
>> of a matrix?
>>
>> ============ main.d ==========
>> import mir.ndslice;
>>
>> void main() {
>>
>>   auto matrix = slice!double(3, 4);
>>   matrix[] = 0;
>>   matrix.diagonal[] = 1;
>>
>>   auto row = matrix[0];
>>   row[3] = 4;
>>   assert(matrix[0, 3] == 4);
>>
>>   // assign it to rows of a matrix?
>>   auto vector = sliced!(double)([10, 11, 12, 13]);
>>
>>   // ??? Here I would like to assign the vector to the last 
>> (but it is not working)
>>   // matrix[2] = vector;
>> }
>> ============
>>
>> So I am wondering what the correct way is to do such an 
>> assignment without looping?
>
> matrix[2][] = vector;
>
> Or
>
> matrix[2,0..$] = vector;

great many thanks!! Is there any logic why getting a row works by

auto row = matrix[0];

but assigning to a row works (only) by the two variant you posted?




More information about the Digitalmars-d-learn mailing list