transpose.cxx
|
|
Demonstrate MultiArrayView::transpose()
Usage: transpose
#include <iostream>
#include <vigra/multi_array.hxx>
#include <vigra/linear_algebra.hxx>
using namespace vigra;
template <class T>
{
for(
int y=0; y<array.
shape(1); ++y)
{
for(
int x=0; x<array.
shape(0); ++x)
std::cout << array(x, y) << " ";
std::cout << "\n";
}
}
int main (int argc, char ** argv)
{
for (int i = 0; i < base_array.size(); i++)
{
base_array[i] = i % base_array.shape(0);
}
std::cout << "base_array:\n";
print(base_array);
std::cout << "transarray:\n";
print(transarray);
std::cout << "transArrayView:\n";
print(transarrayView);
transarray = 5;
std::cout << "base_array after setting transarray to 5\n(no change, since transarray is a copy):\n";
print(base_array);
transarrayView = 5;
std::cout << "base_array after setting transarrayView to 5\n(base_array changes because transarrayView is a view):\n";
print(base_array);
std::cout << "Shape of array5D: " << array5D.shape() << "\n";
std::cout <<
"Shape of array5D view after default transpose(): " << arrayview5D.
shape() <<
"\n";
std::cout <<
"Shape of array5D view after user-defined transpose(): " << arrayview5D_permuted.
shape() <<
"\n";
std::cout << " (applied permutation 2 => 0, 1 => 1, 3 => 2, 4 => 3, 0 => 4 to the axes)\n";
return 0;
}