diff --git a/source/RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/ndarray/Matrix.cpp b/source/RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/ndarray/Matrix.cpp
index 0cacba084a6a5fadd29fab1e67b736a64dc9ca15..d8f53d388acb7b934329c954939204274642b107 100644
--- a/source/RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/ndarray/Matrix.cpp
+++ b/source/RobotAPI/libraries/aron/codegeneration/codegenerator/codewriter/cpp/generator/ndarray/Matrix.cpp
@@ -73,11 +73,11 @@ namespace armarx::aron::codegenerator::cpp::generator
         {
             return {{{name, getInstantiatedCppTypename() + "::Identity()"}}, true};
         }
-        if (type.getDefaultValue() == aron::type::matrix::default_value::DEFAULT || type.getDefaultValue() == aron::type::matrix::default_value::ZEROS)
+        else if (type.getDefaultValue() == aron::type::matrix::default_value::DEFAULT || type.getDefaultValue() == aron::type::matrix::default_value::ZEROS)
         {
             return {{{name, getInstantiatedCppTypename() + "::Zero()"}}, true};
         }
-        if (type.getDefaultValue() == aron::type::matrix::default_value::ONES)
+        else if (type.getDefaultValue() == aron::type::matrix::default_value::ONES)
         {
             return {{{name, getInstantiatedCppTypename() + "::One()"}}, true};
         }
@@ -98,18 +98,18 @@ namespace armarx::aron::codegenerator::cpp::generator
         {
             block_if_data->addLine(cppAccessor + " = " + getInstantiatedCppTypename() + "::Identity();");
         }
-        if (type.getDefaultValue() == aron::type::matrix::default_value::DEFAULT || type.getDefaultValue() == aron::type::matrix::default_value::ZEROS)
+        else if (type.getDefaultValue().empty() || type.getDefaultValue() == aron::type::matrix::default_value::DEFAULT || type.getDefaultValue() == aron::type::matrix::default_value::ZEROS)
         {
             block_if_data->addLine(cppAccessor + " = " + getInstantiatedCppTypename() + "::Zero();");
         }
-        if (type.getDefaultValue() == aron::type::matrix::default_value::ONES)
+        else if (type.getDefaultValue() == aron::type::matrix::default_value::ONES)
         {
             block_if_data->addLine(cppAccessor + " = " + getInstantiatedCppTypename() + "::One();");
         }
-        else
+        else if (not type.getDefaultValue().empty())
         {
             // try to parse num. We ensure from typereader that defaultValue is valid number
-            block_if_data->addLine(cppAccessor + " = " + "::One() * " + type.getDefaultValue() + ";");
+            block_if_data->addLine(cppAccessor + " = " + getInstantiatedCppTypename() + "::One() * " + type.getDefaultValue() + ";");
         }
         return resolveMaybeResetHardBlock(block_if_data, cppAccessor);
     }