Take your ideas beyond research to production

Hiring domain experts with strong software skills is hard

VersionBay will come onsite and work with your team

Professionalize the software your domain experts develop

If you need help with your MATLAB/Simulink/Python/Julia project

Some examples of what we do

Build Apps in MATLAB with App Designer

Build, document, test and package software modules or apps so others can use

Optimize code making it easier to understand

Gender = categorical(Gender);
GenderList = unique(Gender);
for idx = 1:length(GenderList)
   idxHeight = Height(Gender==GenderList(idx));
   HeightAvg(idx) = mean(idxHeight)


byGroup = findgroup(byGender);
HeightAvg = splitapply(@mean, Height, byGroup)

The example above shows the usage of two built-in MATLAB functions findgroup and splitapply that make the code easier to read and maintain.

function out = myFunction(A, B, C)   
        A (1,1) string 
        B (1,:) double
        C (2,2) cell

    % Function code
    % ...

The example is using arguments that was released in R2019b to help with function argument validation. It makes the code easier to read and it validates input variables on size and type.

Make code more robust against incorrect usage

Refactor code to make it easier to reuse

def censor(text,word):
    while word in text:
        text = text[:text.find(word)] + "*"*len(word) +
            text[text.find(word) + len(word):]
    return text


def censor(text, word):
    censor_string = '*' * len(word)
    return censor_string.join(text.split(word))

Notice that the while loop was not necessary in the example above. It is hard to understand quickly the first code snippet where is the second makes it clear that the function replaces a particular word with *’s in the text provided.

import matlab.engine
eng = matlab.engine.start_matlab()
tf = eng.isprime(37)

The example shows how to invoke MATLAB from Python. It is also possible to invoke Python from MATLAB.

Write utilities or configuration code that automates, configures, sets up, or connects software environments