On Friday, 21 February 2020 at 08:51:49 UTC, Andre Pany wrote:
Hi,
I have a 2D double array and I want to subtract from the first
column a value,
is this possible with matrix operation in D?
```
void main()
{
double[][] data = [[0.0, 1.4], [1.0, 5.2], [2.0, 0.8]];
// subtract -2.0 from the first column for every value
// Expected output
// data = [[-2.0, 1.4], [-1.0, 5.2], [0.0, 0.8]];
}
```
Kind regards
André
I've recently learning Mir and so interested in
this topic. For the above purpose, I am wondering if
this Numpy-like approach is also valid:
y[ 0..$, 0 ] *= 100;
The online editor (https://run.dlang.io/) seems to give
the expected result.
// (the below code is based on the post by jmh530)
import std.stdio;
import mir.ndslice;
void main()
{
auto x = [0.0, 1.0, 2.0, 3.0, 4.0, 5.0].sliced(3, 2);
auto y = x.dup;
writeln( x ); // [[0, 1], [2, 3], [4, 5]]
writeln( y ); // [[0, 1], [2, 3], [4, 5]]
x.byDim!1.front.each!"a *= 100";
y[ 0..$, 0 ] *= 100;
writeln( x ); // [[0, 1], [200, 3], [400, 5]]
writeln( y ); // [[0, 1], [200, 3], [400, 5]]
}