Перейти к содержимому

Как присвоить всем элементам массива одно значение

  • автор:

Документация

Присваивать значения объектам на Java ® объектный массив, используйте MATLAB ® синтаксис команд. Например, следующий оператор присваивает значение массиву Java A из типа java.lang.Double .

A(row,column) = java.lang.Double(value)

В программе Java вы присвоили бы значение A[row-1][column-1] . Для получения дополнительной информации о различиях между Java и массивами MATLAB, смотрите, Как MATLAB Представляет Массивы Java.

Чтобы запустить примеры в этой теме, создайте 4 5 массив dblArray . Значения отображены для dblArray зависьте от порядка, в котором вы запускаете примеры.

dblArray = javaArray('java.lang.Double',4,5); for m = 1:4 for n = 1:5 dblArray(m,n) = java.lang.Double((m*10)+n); end end dblArray
dblArray = java.lang.Double[][]: [11] [12] [13] [14] [15] [21] [22] [23] [24] [25] [31] [32] [33] [34] [35] [41] [42] [43] [44] [45]

Единственное присвоение индексации индекса

Можно использовать индексацию одно индекса, чтобы присвоить значения массиву. Например, создайте массив Java 5 на 1 и присвойте его строке dblArray .

onedimArray = javaArray('java.lang.Double',5); for k = 1:5 onedimArray(k) = java.lang.Double(100*k); end

Замените строку 3 на значения onedimArray .

dblArray(3) = onedimArray
dblArray = java.lang.Double[][]: [ 11] [ 12] [ 13] [ 14] [ 15] [ 21] [ 22] [ 23] [ 24] [ 25] [100] [200] [300] [400] [500] [ 41] [ 42] [ 43] [ 44] [ 45]

Присвоение линейной матрицы

Чтобы присвоить значение каждому элементу многомерного массива Java, используйте оператор двоеточия MATLAB ( : ). Например, инициализируйте содержимое dblArray обнулять.

dblArray(:) = java.lang.Double(0)
dblArray = java.lang.Double[][]: [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0] [0]

Используйте оператор двоеточия, как вы были бы при работе с массивами MATLAB. Например, присвойте одно значение каждой строке в dblArray .

dblArray(1,:) = java.lang.Double(125); dblArray(2,:) = java.lang.Double(250); dblArray(3,:) = java.lang.Double(375); dblArray(4,:) = java.lang.Double(500)
dblArray = java.lang.Double[][]: [125] [125] [125] [125] [125] [250] [250] [250] [250] [250] [375] [375] [375] [375] [375] [500] [500] [500] [500] [500]

Пустое матричное присвоение

Можно присвоить пустую матрицу ( [] ) к элементу массива Java. MATLAB хранит null значение, а не массив 0 на 0.

dblArray(2,2) = []
dblArray = java.lang.Double[][]: [125] [125] [125] [125] [125] [250] [] [250] [250] [250] [375] [375] [375] [375] [375] [500] [500] [500] [500] [500]

Преобразованное в нижний индекс удаление

Если вы присваиваете пустую матрицу целой строке или столбцу массива MATLAB, то MATLAB удаляет ту строку или столбец от массива. Когда вы присваиваете пустую матрицу массиву Java, массив обеспечивает свои размерности.

Например, создайте массив MATLAB.

for m = 1:4 for n = 1:5 matlabArr(m,n) = (m*10) + n; end end matlabArr
matlabArr = 11 12 13 14 15 21 22 23 24 25 31 32 33 34 35 41 42 43 44 45

Присвойте пустую матрицу четвертому столбцу. Этот оператор изменяет свои размерности от 4 5 до 4 на 4.

matlabArr(:,4) = []
matlabArr = 11 12 13 15 21 22 23 25 31 32 33 35 41 42 43 45

Когда вы присваиваете пустую матрицу массиву Java dblArray , массив обеспечивает 4 5 размерности.

dblArray(:,4) = []
dblArray = java.lang.Double[][]: [125] [125] [125] [] [125] [250] [] [250] [] [250] [375] [375] [375] [] [375] [500] [500] [500] [] [500]

Документация MATLAB

Поддержка

  • MATLAB Answers
  • Помощь в установке
  • Отчеты об ошибках
  • Требования к продукту
  • Загрузка программного обеспечения

© 1994-2021 The MathWorks, Inc.

  • Условия использования
  • Патенты
  • Торговые марки
  • Список благодарностей

Для просмотра документации необходимо авторизоваться на сайте
Войти
Памятка переводчика

1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.

2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.

3. Сохраняйте структуру оригинального текста — например, не разбивайте одно предложение на два.

4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.

5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.

Arduino.ru

как присвоить одинаковые значения элементам массива

  • Войдите на сайт для отправки комментариев

12 ответов [Последнее сообщение]
Ср, 22/02/2017 — 19:25
Зарегистрирован: 29.02.2016

как присвоить одинаковые начальные значения элементам массива.

пробую так int array[10]=;

в итоге присваивается 1 только первому элементу.

int array[10]=; -это как утомительно, особенно для многомерных массивов.

У меня есть еще вариант: в setup вставить цикл

Уважаемые программисты.подскажите «зеленому»!

  • Войдите на сайт для отправки комментариев

Ср, 22/02/2017 — 21:07

uni аватар

Зарегистрирован: 24.09.2015

Чего-нибудь стандартного для общего случая нет (есть gnu расширение как раз для этого случая, но оно не работает для C++). Бывают костыли, но второй вариант проще всего.

  • Войдите на сайт для отправки комментариев

Ср, 22/02/2017 — 21:39
Зарегистрирован: 22.12.2016

Но если новичёк, то крутите циклы и не морочьте голову, я и сам предпочёл бы цикл

  • Войдите на сайт для отправки комментариев

Ср, 22/02/2017 — 21:57

uni аватар

Зарегистрирован: 24.09.2015

memset ограничен байтовыми значениями.

  • Войдите на сайт для отправки комментариев

Чт, 23/02/2017 — 00:40

andriano аватар

Зарегистрирован: 20.06.2015

А в чем проблема?

Чтобы присвоить элементам массива значения цикл необходим. Что бы у Вас ни было написано в коде (считаем, что в языке устраивающая Вас конструкция есть), процессору все равно придется крутить цикл.

Так что сэкономить не получится. От слова совсем. (нет, 10 байт, конечно, можно присвоить и десятью строками без цикла)

А если Вас вариант цикла не устраивает чисто эстетически, придумайте для него #define как только душеньке угодно.

  • Войдите на сайт для отправки комментариев

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

Можно объявить массив для работы с набором значений одного типа данных. Массив представляет собой одиночную переменную с множеством ячеек для хранения значений, тогда как типовая переменная имеет только одну ячейку хранилища, в которой может храниться только одно значение. Следует обращаться к массиву как одному целому, когда необходимо сослаться на все значения, хранящиеся в нем, или можно обращаться к отдельным элементам.

Например, чтобы хранить ежедневные расходы по каждому дню года, можно объявить одну переменную массива с 365 элементами, а не объявлять 365 переменных. Каждый элемент массива содержит одно значение. Следующая инструкция объявляет переменную массива с 365 элементами. По умолчанию массив индексируется, начиная с нуля, так что верхняя граница массива равна 364, а не 365.

Dim curExpense(364) As Currency 

Чтобы установить значение отдельного элемента, указывается индекс этого элемента. В следующем примере каждому элементу массива присваивается начальное значение, равное 20.

Sub FillArray() Dim curExpense(364) As Currency Dim intI As Integer For intI = 0 to 364 curExpense(intI) = 20 Next End Sub 

Изменение нижней границы

Используйте оператор Option Base в верхней части модуля , чтобы изменить индекс по умолчанию первого элемента с 0 на 1. В следующем примере инструкция Option Base изменяет индекс для первого элемента, а инструкция Dim объявляет переменную массива с 365 элементами.

Option Base 1 Dim curExpense(365) As Currency 

Можно также в явном виде установить нижнюю границу массива, используя выражение To, как показано в следующем примере.

Dim curExpense(1 To 365) As Currency Dim strWeekday(7 To 13) As String 

Хранение значений Variant в массивах

Существует два способа создания массивов значений Variant . Один способ — объявление массива с типом данных Variant, как показано в следующем примере:

Dim varData(3) As Variant varData(0) = "Claudia Bendel" varData(1) = "4242 Maple Blvd" varData(2) = 38 varData(3) = Format("06-09-1952", "General Date") 

Другой способ — присвоение массива, возвращаемого функцией Array, переменной Variant, как показано в следующем примере.

Dim varData As Variant varData = Array("Ron Bendel", "4242 Maple Blvd", 38, _ Format("06-09-1952", "General Date")) 

Независимо от способа создания массива элементы в массиве значений Variant идентифицируют по индексу. Например, в любом из предыдущих примеров может быть добавлен следующий оператор.

MsgBox "Data for " & varData(0) & " has been recorded." 

Использование многомерных массивов

В Visual Basic допускается объявлять массивы с 60 размерностями, максимум. Например, следующий оператор объявляет 2-мерный массив 5 на 10.

Dim sngMulti(1 To 5, 1 To 10) As Single 

Если рассматривать массив как матрицу, первый аргумент представляет строки, а второй аргумент представляет столбцы.

Использовать вложенные для. Следующие операторы для обработки многомерных массивов. Следующая процедура позволяет заполнить двумерный массив значениями Single.

Sub FillArrayMulti() Dim intI As Integer, intJ As Integer Dim sngMulti(1 To 5, 1 To 10) As Single ' Fill array with values. For intI = 1 To 5 For intJ = 1 To 10 sngMulti(intI, intJ) = intI * intJ Debug.Print sngMulti(intI, intJ) Next intJ Next intI End Sub 

См. также

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.

Обратная связь

Были ли сведения на этой странице полезными?

Присвоить значение элементу массива

Только начал изучать С++, возникла сложность. Необходимо присвоить определенному элементу массива значение. Делаю так:

for (int i = 0; i < 256; i++) < if (&inp_str[i] == "=" && &inp_str[i + 1] == "=") < out_str[start_out] = " mt24 mb12">
    c++
)" data-controller="se-share-sheet" data-se-share-sheet-title="Поделиться ссылкой на вопрос" data-se-share-sheet-subtitle="" data-se-share-sheet-post-type="question" data-se-share-sheet-social="facebook twitter " data-se-share-sheet-location="1" data-se-share-sheet-license-url="https%3a%2f%2fcreativecommons.org%2flicenses%2fby-sa%2f3.0%2f" data-se-share-sheet-license-name="CC BY-SA 3.0" data-s-popover-placement="bottom-start">Поделиться
)" title="">Улучшить вопрос
задан 16 июн 2013 в 18:23
3
    1
    &inp_str[i] а зачем тут оператор взятия адреса?
    – Чад
    16 июн 2013 в 18:38
    Если без него то в строке "if (inp_str[i] == "=" && inp_str[i + 1] == "=")
    – rareMax
    16 июн 2013 в 18:41
    Спасибо большое всем за помощь!
    – rareMax
    16 июн 2013 в 18:43
Добавить комментарий|

2 ответа 2

Сброс на вариант по умолчанию
5

ну если я правильно понял то массивы у тебя char?

Если да то вот пару ошибок у вас.

Во-первых вы сверяете 1 символ из массива со строкой!
В С++ в двойных кавычках это строка! К ней добавляется завершающий нуль символ.
То есть вы сверяете символ из массива с 2 символами из строки "=".
В С++ символ должен быть в одинарных кавычках '='.
А то у вас получается что вы сверяете к примеру символ '=' с 2 символами '=' и '\0'.

Во-вторых вы берёте не символ из массива, а пытаетесь получить адрес адрес ячейки массива в которой хранится символ и сверить со строкой.
Символ & в С++ означает взятие адреса.

Ваш код должен выглядеть примерно так.

for (int i = 0; i < 256; i++) < if (inp_str[i] == '=' && inp_str[i + 1] == '=') < out_str[start_out] = '='; start_out++; >>

У вас в сообщении ошибки так и написано, что компилятор не может с конвертировать символ из массива в 2 символа из строки "=" , чтобы потом сверить их.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *