Как перевести код с Matlab на C#?

520
13 января 2017, 07:12

Здравствуйте! Есть один довольно большой проект на MATLAB, который желательно перевести на С#

Проект написан классами, пример кода ниже, сам код сделан похожим на шарповый.

Я прекрасно понимаю, что надо будет расставлять типы, делать какие-то интерфейсы, что автоматизированных утилит я вряд ли найду, и что надо будет пилить это руками, но пугает объем - несколько тысяч (хз, тысячи 3-4) строк кода.

Есть ли хотя бы какие-то конвертеры синтаксиса, чтобы не менять все эти function.... end, if... end, for... end на классический синтаксис фигурными скобками? Пример кода. Весь код в таком ООП стиле: класс-методы-наследование, есть ивенты

classdef ENode<handle
    properties
        nodes_range 
        connected_elements={};
        is_repacked=false
    end

    methods
        function copy_object=Clone(this)
            constructor=str2func(class(this));
            copy_object=constructor(this.nodes_range);
            %!!! У КОПИИ is_repacked=false!!!
        end
        function this=ENode(nodes_range)
             if nargin==1
                 this.nodes_range=nodes_range;                
             end         
        end
        function RefreshNodeRange(this,deleted_range) 
           if ~isempty(deleted_range)
                has_selfnode_deleted=false;
                new_range=this.nodes_range;
                        for i=1:length(deleted_range)
                            for j=1:length(this.nodes_range)
                                if deleted_range(i)<this.nodes_range(j)
                                    new_range(j)=new_range(j)-1;
                                elseif deleted_range(i)==this.nodes_range(j) 
                                    new_range(j)=0; 
                                    has_selfnode_deleted=true;
                                end
                            end
                        end
                        if has_selfnode_deleted 
                            k=1;
                            while 1
                                if new_range(k)==0
                                    new_range=[];
                                else
                                    k=k+1;
                                end
                                if k>length(this.nodes_range)
                                    break
                                end
                            end
                        end
                this.nodes_range=new_range;    
           end    
        end
    end
end
READ ALSO
Interface vs Abstract class [дубликат]

Interface vs Abstract class [дубликат]

На данный вопрос уже ответили:

398
Есть ли какая-то выгода от использования Dispatcher в WinForms?

Есть ли какая-то выгода от использования Dispatcher в WinForms?

В WinForms можно воспользоваться классов WPF- Dispatcher для доступа к UI из разных потоков

311
Почему код работает не корректно? [требует правки]

Почему код работает не корректно? [требует правки]

Надо чтобы софт находил хеш даже если заменил комбинации, но почему-то он и не находит, не знаю почему

447
usercontrol с различными шаблонами данных

usercontrol с различными шаблонами данных

добрый деньЕсть некоторый объект, приходящий от сервера вк

317