view reshapeToPlotMatrix.m @ 1037:2d7ba44340d0 feature/burgers1d

Pass scheme specific parameters as cell array. This will enabale constructDiffOps to be more general. In addition, allow for schemes returning function handles as diffOps, which is currently how non-linear schemes such as Burgers1d are implemented.
author Vidar Stiernström <vidar.stiernstrom@it.uu.se>
date Fri, 18 Jan 2019 09:02:02 +0100
parents 51aaf67a7df5
children
line wrap: on
line source

% Takes a grid function and reshapes it into a matrix of shape m for plotting.
function F = reshapeToPlotMatrix(gf, m)
    D = length(m);

    switch D
        case 1
            F = gf;
        case 2
            F = reshape(gf, rot90(m,2));
        case 3
            % After the reshape the indecies will be M(z,y,x). Plot need them to be M(y,x,z)
            p = [2 3 1]; % Permuation
            F = permute(reshape(gf,rot90(m,2)), p);
        otherwise
            error('reshapeToPlotMatrix:NotImplemented','Grid function to matrix is not implemented for dimension = %d', length(m));
    end
end