File Exchange

image thumbnail

Write Cell Array of Structs into a VTK Structured Grid

version 1.2 (3.35 KB) by

Takes a 3D cell array with (nested) structs and exports it as a VTK structured grid.

3 Downloads

Updated

View License

Each cell of the input cell array must be a struct, possibly nested, and for each point of the input, three properties (or alternatively the cell array indices) are used as VTK coordinates. An arbitrary number of properties are used as values of these points.

The resulting VTK file (which is in ascii encoding) can then be opened and viewed with VTK compatible applications, e.g. ParaView.

The "help" text:
% WriteCellToVTKStructured (FILENAME, CELL, COORDINATES, VALUES, ...)
% Writes the content of a cell array into an ascii vtk-file 'FILENAME'
% as a structured grid.
%
% For details about this kind of data see
% http://www.itk.org/Wiki/ParaView/Users_Guide/VTK_Data_Model#Curvilinear_Grid_.28Structured_Grid.29
% and
% www.vtk.org/VTK/img/file-formats.pdf
%
% This function takes a 3D cell array of structs. For each struct, it then
% uses either given fields of the struct or its indices as VTK coordinates,
% and other fields as the values of the grid.
%
% Input:
% filename destination (string)
% cell N1xN2xN3 cell array of structs
% coordinates Cell with three cells of strings. These define what to use
% for the points' coordinates. (Details below)
% values Cell with cells of strings. These define the scalar values
% at each point. (details below)
%
% Optional input parameters of the form ..., 'name', value, ...:
% header Name of the dataset, will be saved into the file.
% valuenames Names of the values. The defaults are their field names.
% spacing 3x1 matrix of inter-point spacings if indices are used as
% coordinates.
% offset 3x1 matrix of offsets for this case.
%
% Example usage:
%
% This example assumes that 'results' is a cell array of structs, where
% each struct has (at least) the following valid fields:
% 'vw', 'effects.energy' and 'effects.charge'
%
% WriteCellToVTKStructured('test.vtk', results, ...
% {{}, {}, {'effects', 'energy'}}, ...
% {{'vw'}, {'effects' 'charge'}}, ...
% 'offset', [1 0.4 0.1], ...
% 'spacing', [1 0.05 0.1])
%
% Then use e.g. ParaView to view the resultin file 'test.vtk'.

Comments and Ratings (4)

cheng joylin

Hi Daniel, Could you please upload an example of input file?

Hello Romain, I added the help text to the description, I hope this helps a bit.

Romain W

Hi Daniel, would it be possible to have more details about the input?

Updates

1.2

Added doctext

MATLAB Release
MATLAB 7.12 (R2011a)
Acknowledgements

Inspired by: WriteToVTK, writeVTK

Download apps, toolboxes, and other File Exchange content using Add-On Explorer in MATLAB.

» Watch video