Приложение
Использовав преобразование объекта класса java.lang.string в массив символов MATLAB, мы все-таки подсчитали число символов обычными средствами MATLAB. Но в среде MATLAB мы можем сделать это и средствами Java.
>> string.length ans =16…или:
>> e=java.lang.StringBuffer(string) e =Hello my friend! >> e.length ans =16Следующий пример показывает создание Java-структуры многоугольника:
>> polygon=java.awt.Polygon([14 42 98 124],[55 12-2 62].4) polygon =java.awt.Pol ygon@94067bДля выявления структуры Java объекта может использоваться функция struct (object), которая преобразует объект в структуру (массив структур) MATLAB с потерей информации о классе.
Пример:.
>> struct(string) ans =0x0 struct array with fields:" struct(polygon) ans =npoints: 4xpoints: [4x1 int32] ypoints: [4x1 int32]Следует отметить, что указание имени объекта с большой буквы (кстати, как это задано в определении класса) ведет к ошибке, поскольку сам объект, преобразуемый в структуру, по правилам MATLAB, где регистр имеет значение, называется polygon:
>> struct(Polygon) ??? Undefined function or variable 'Polygon'.Эти примеры, и их можно привести множество, свидетельствуют о том, что пользователь, рискнувший применить средства Java в MATLAB на практике, должен хорошо знать как возможности языка Java, так и особенности среды и языка программирования MATLAB. И быть готовым к различным сюрпризам.
Для обычных пользователей системой MATLAB по ее прямому назначению – математические вычисления – большинство возможностей Java представляет ограниченный интерес. Исключением, пожалуй, является работа с такими важными объектами Java, как массивы и классы url. Напомним, что Java-массивы входят в иерархию объектов языка программирования системы MATLAB.
Массивы в Java считаются одномерными (подобными векторам-столбцам MAT-LAB). Однако возможно построение массивов в массивах без ограничения числа уровней вложения. Тем не менее функция ndims MATLAB, если ее входным аргументом является такой "многомерный" массив Java, всегда возвращает 2. Форма таких массивов в общем случае не прямоугольная, т. е. число элементов по рядам и столбцам может различаться. В MATLAB все массивы, кроме массивов Java, могут быть одномерными, двумерными и многомерными. Нумерация элементов Java-массивов в обычных системах программирования на Java идет с нуля. В MATLAB нумерация всех элементов массивов, в том числе и Java-массива (Java-array), начинается с единицы. (База массива равна единице.) Ниже приведен пример задания прямоугольного Java-массива в массиве с числами двойной точности с именем dblArray: dblArray = javaArray(Java.lang.Double'.3.4);
В следующем фрагменте программы на языке MATLAB с помощью циклов элементам массива присваиваются конкретные значения:
— Регулярная проверка качества ссылок по более чем 100 показателям и ежедневный пересчет показателей качества проекта.
— Все известные форматы ссылок: арендные ссылки, вечные ссылки, публикации (упоминания, мнения, отзывы, статьи, пресс-релизы).
— SeoHammer покажет, где рост или падение, а также запросы, на которые нужно обратить внимание.
SeoHammer еще предоставляет технологию Буст, она ускоряет продвижение в десятки раз, а первые результаты появляются уже в течение первых 7 дней. Зарегистрироваться и Начать продвижение
for 1=1:3for j-l:4 dblArray(i.j) = Java.lang.Double((i*5)+j); end endТеперь несложно проверить созданный массив:
dblArray dblArray =Java.lang.Double[][]:[6] [7] [8] [9] [11] [12] [13] [14] [16] [17] [18] [19] >> dblArray(2.3) ans =13.0Из этого примера в целом ясно, что, несмотря на отдельные нюансы, работа с Java-массивами в основном подобна таковой для MATLAB массивов. При этом система MATLAB поддерживает ряд типов преобразований массивов и иных данных из форматов, принятых на языке программирования Java, в форматы MATLAB и наоборот.
