# Extensions/MatlabBridge: Send transform (4x4 matrix) from Matlab to 3D Slicer

**URL:** <https://discourse.slicer.org/t/extensions-matlabbridge-send-transform-4x4-matrix-from-matlab-to-3d-slicer/3159>\
**Category:** Support\
**Created:** [June 12, 2018, 7:48pm UTC](https://discourse.slicer.org/t/extensions-matlabbridge-send-transform-4x4-matrix-from-matlab-to-3d-slicer/3159 "2018-06-12T19:48:15Z")\
**Posts on this page:** 1\
**Showing post:** 7

<div class="post-metadata">

**Author:** ![katharina\_hecker](https://sea2.discourse-cdn.com/flex002/user_avatar/discourse.slicer.org/katharina_hecker/32/3431_2.png) [@katharina\_hecker](https://discourse.slicer.org/u/katharina_hecker)\
**Post date:** [June 14, 2018, 6:26am UTC](https://discourse.slicer.org/t/extensions-matlabbridge-send-transform-4x4-matrix-from-matlab-to-3d-slicer/3159/7 "2018-06-14T06:26:20Z")

</div>

Thank you for your suggestions!

I was creating a new Module in Slicer, which worked (called ‘Matrix1’)  
I was saving the needed Matrix in a mat file (‘matrixfilteredvolume.mat’) and I was loadinng it into the .m file from Matrix1 module. Then I was saving the mat file (FilteredVolume matrix) under a new variable called ‘Matrix’. I was changing the XML file like this:

```
<?xml version="1.0" encoding="utf-8"?>
<executable>
  <category>Matlab</category>
  <title>Matrix1</title>
  <description><![CDATA[Perform a simple image processing and image statistics computation in Matlab.]]></description>
  <version>0.0.0.1</version>
  <documentation-url>http://www.slicer.org/slicerWiki/index.php/Documentation/Nightly/Extensions/MatlabBridge</documentation-url>
  <license/>
  <contributor>Andras Lasso (PerkLab)</contributor>
  <acknowledgements><![CDATA[SparKit is a project funded by Cancer Care Ontarioand the Ontario Consortium for Adaptive Interventions in Radiation Oncology (OCAIRO) to provide free, open-source toolset for radiotherapy and related image-guided interventions.]]></acknowledgements>
  <parameters>
    <label>Processing Parameters</label>
    <description><![CDATA[Parameters for the processing]]></description>
    <integer>
      <label>Threshold</label>
      <description><![CDATA[All voxels below this value will be set to zero]]></description>
      <longflag>threshold</longflag>
      <default>50</default>
      <constraints>
        <minimum>-2000</minimum>
        <maximum>5000</maximum>
        <step>5</step>
      </constraints>      
    </integer>
  </parameters>
  <parameters>
    <label>IO</label>
    <description><![CDATA[Input/output parameters]]></description>
    <image>
      <label>Matrix</label>
      <description><![CDATA[Input volume to be filtered]]></description>
      <longflag>inputvolume</longflag>
      <channel>input</channel>
    </image>
    <image>
      <label>Matrix</label>
      <description><![CDATA[Output filtered]]></description>
      <longflag>outputvolume</longflag>
      <channel>output</channel>
    </image>
  </parameters>
  <parameters>
    <label>Output</label>
    <description>Matlab command output</description>
    <double>
      <label>Minimum</label>
      <description><![CDATA[Image mininum]]></description>
      <name>min</name>
      <channel>output</channel>
      <default></default>
    </double>    
    <double>
      <label>Maximum</label>
      <description><![CDATA[Image maximum]]></description>
      <name>max</name>
      <channel>output</channel>
      <default></default>
    </double>    
  </parameters>
</executable>

```

* * *

and where running the code of the .m file through the new Slicer module:

```
function outputParams=Matrix1(inputParams)

load 'matrixfilteredvolume.mat'

Matrix = FilteredVolume

img=cli_imageread(inputParams.'Matrix');

outputParams.min=min(min(min(img.pixelData)));
outputParams.max=max(max(max(img.pixelData)));

img.pixelData=(double(img.pixelData)>inputParams.threshold)*100;

cli_imagewrite(inputParams.'Matrix', img);

```

* * *

The following Error appeared:  
Matrix1 standard error:

> Failed to execute Matlab function: Matrix1, received the following error message:  
> ERROR: Command execution failed. Error: File: Matrix1.m Line: 16 Column: 32  
> Unexpected MATLAB expression.
> 
> Error in cli\_commandserver (line 91)  
> response=evalc(cmd);
> 
> Error in run (line 91)  
> evalin(‘caller’, strcat(script, ‘;’));

* * *

Did I load the matrix in a wrong way?

---

_[View the full topic](https://discourse.slicer.org/t/extensions-matlabbridge-send-transform-4x4-matrix-from-matlab-to-3d-slicer/3159)._
