Преобразовать MLMultiArray в эквивалент C#/.Net? Xamarin IOS

#ios #xamarin #coreml

Вопрос:

MLMultiArray ниже, мне это нужно с использованием простых типов csharp/.net, чтобы я мог использовать с веб-службой, которая не использует типы IOS Xamarin.

Тип: MLMultiArray Final_heatmaps_0 {получить; установить;}

Использование:

 MLMultiArray Final_heatmaps_0   {Float32 1 × 1 × 19 × 32 × 32 array}    
base    {Foundation.NSObject}   
ClassHandle 0x1fe40a010 
Shape   {System.nint[5]}    
[0] 1   
[1] 1   
[2] 19  
[3] 32  
[4] 32  
Static members      
Non-public members      
class_ptr   0x1fe40a010 
Non-public members      
_Shape  0x283ab5ec0 
 

Вот что я пытаюсь сделать

см. изображение

Ответ №1:

Согласно информации , очевидно Shape , что это nint список .

Так что непосредственно получите значение с .Shape помощью .

 MLMultiArray array = xxx;
nint[] data = array.Shape;
 

Вы можете использовать data в csharp .

Комментарии:

1. Спасибо @ColeX, мне нужен доступ . Значение float, и я не могу использовать nint[].

2. для (int x = 0; x < Ширина тепловой карты; x ) { для (int y = 0; y. Плавающее значение > уверенность) { уверенность = тепловые карты[индекс]. Значение с плавающей запятой; positionX = x; positionY = y; } } }

3. Мне нужно создать идентичный массив для mlmultiarray, чтобы выполнить с ним ту же операцию, то есть форма и значения внутри должны быть одинаковыми, я добавил изображения того, что я пытаюсь сделать, Тепловые карты-это поплавки MLMultiarray, это поплавок Csharp[]

4. Я знаю это , я имею в виду, в чем именно проблема ? Успешно ли выполняется сборка кода ? Или результат работает так, как ожидалось ?