Как умножить массив на число с
Двумерные матрицы в электронной таблице могут быть представлены массивами значений их элементов, записанных в двумерных диапазонах. Чтобы умножить матрицу на какое-либо число, нужно умножить каждый элемент этой матрицы на это число. Иначе говоря, следует умножить массив, содержащий элементы матрицы на число. В MS Excel для выполнения операции умножения матрицы на число можно применить соответствующие формулы.
Рассмотрим технологию умножения матрицы на число на примере.
Пример 3. Пусть необходимо умножить матрицу А= на число 4, иначе говоря, получить матрицу С= А х 4.
Решение:
1. В ячейки рабочего листа введите элементы матрицы (например в диапазон А2: B3, см. рис. 4).
2. Выделите диапазон, в который будет помещаться результирующая матрица, например D2:E3.
3. В выделенный диапазон введите формулу: = А2: B3*4
4. Нажмите комбинацию клавиш Ctrl + Shift + Enter (такая комбинация указывает, что должна быть выполнена операция с массивом ячеек). После выполнения операций в диапазоне ячеек D2:C3 будут помещены результаты вычислений
Рисунок 4
times , .*
C = A .* B умножает массивы A и B путем умножения соответствующих элементов. Размеры A и B должен быть то же самое или быть совместимым.
Если размеры A и B совместимы, затем эти два массива неявно расширяются, чтобы совпадать друг с другом. Например, если один из A или B скаляр, затем скаляр объединен с каждым элементом другого массива. Кроме того, векторы с различными ориентациями (один вектор-строка и один вектор-столбец) неявно расширяются, чтобы сформировать матрицу.
C = times( A , B ) альтернативный путь состоит в том, чтобы выполнить A.*B , но редко используется. Это позволяет выполнить перегрузку оператора для классов.
Примеры
Умножение двух векторов
Создайте два вектора, A и B , и умножьте их поэлементно.
A = [1 0 3]; B = [2 3 7]; C = A.*B
C = 1×3 2 0 21
Умножение двух массивов
Создайте два массива 3х3, A и B , и умножьте их поэлементно.
A = [1 0 3; 5 3 8; 2 4 6]; B = [2 3 7; 9 1 5; 8 8 3]; C = A.*B
C = 3×3 2 0 21 45 3 40 16 32 18
Умножение векторов строки и столбца
Создайте вектор-строку a и вектор-столбец b , затем умножьте их. 1 3 вектор-строка и 4 1 вектор-столбец объединяются, чтобы произвести 4 3 матрица.
a = 1:3; b = (1:4)'; a.*b
ans = 4×3 1 2 3 2 4 6 3 6 9 4 8 12
Результат 4 3 матрица, где каждый (i, j) элемент в матрице равен a(j).*b(i) :
a = [ a 1 a 2 a 3 ] , b = [ b 1 b 2 b 3 b 4 ] , a . * b = [ a 1 b 1 a 2 b 1 a 3 b 1 a 1 b 2 a 2 b 2 a 3 b 2 a 1 b 3 a 2 b 3 a 3 b 3 a 1 b 4 a 2 b 4 a 3 b 4 ] .
Входные параметры
A B — Операнды
скаляры | векторы | матрицы | многомерные массивы
Операнды в виде скаляров, векторов, матриц или многомерных массивов. Входные параметры A и B должен или быть одного размера или иметь размеры, которые совместимы (например, A M — N матрица и B скаляр или 1 — N вектор-строка). Для получения дополнительной информации см. «Совместимые размеры массивов для основных операций».
- Операнды с целочисленным типом данных не могут быть комплексными.
Типы данных: single | double | int8 | int16 | int32 | int64 | uint8 | uint16 | uint32 | uint64 | logical | char | categorical | duration | calendarDuration
Поддержка комплексного числа: Да
Вопросы совместимости
Изменение неявного расширения влияет на аргументы для операторов
Поведение изменяется в R2016b
При запуске в R2016b со сложения неявного расширения некоторые комбинации аргументов для основных операций, которые ранее возвратили ошибки теперь, приводят к результатам. Например, вы ранее не могли добавить строку и вектор-столбец, но те операнды теперь допустимы для сложения. Другими словами, выражение как [1 2] + [1; 2] ранее возвращенный ошибка несоответствия размера, но теперь это выполняется.
Если ваш код использует поэлементные операторы и использует ошибки что MATLAB ® ранее возвращенный для несовпадающих размеров, особенно в a try / catch блокируйтесь, затем ваш код больше не может фиксировать те ошибки.
Для получения дополнительной информации о необходимых входных размерах для основных операций над массивами смотрите Совместимые Размеры Массивов для Основных Операций.
Изменение неявного расширения влияет на calendarDuration категориальный , и duration массивы
Поведение изменяется в R2020b
Начиная в R2020b, times неявное расширение поддержек, когда аргументами является calendarDuration категориальный , или duration массивы. Между R2020a и R2016b, неявное расширение поддерживалось только для типов числовых данных.
Расширенные возможности
«Высокие» массивы
Осуществление вычислений с массивами, которые содержат больше строк, чем помещается в памяти.
Генерация кода C/C++
Генерация кода C и C++ с помощью MATLAB® Coder™.
Указания и ограничения по применению:
- Умножение чистых мнимых чисел неличными числами не может совпадать с MATLAB. Генератор кода не специализирует умножение чистыми мнимыми числами — это не устраняет вычисления с нулевой действительной частью. Например, (Inf + 1i)*1i = (Inf*0 – 1*1) + (Inf*1 + 1*0)i = NaN + Infi .
- Если вы используете times с одним типом и дважды вводят операнды, сгенерированный код не может привести к тому же результату как MATLAB. Смотрите Бинарные Поэлементные Операции с Одним и Двойными Операндами (MATLAB Coder) .
Генерация кода графического процессора
Сгенерируйте код CUDA® для NVIDIA® графические процессоры с помощью GPU Coder™.
Указания и ограничения по применению:
- Умножение чистых мнимых чисел неличными числами не может совпадать с MATLAB. Генератор кода не специализирует умножение чистыми мнимыми числами — это не устраняет вычисления с нулевой действительной частью. Например, (Inf + 1i)*1i = (Inf*0 – 1*1) + (Inf*1 + 1*0)i = NaN + Infi .
Генерация HDL-кода
Сгенерируйте Verilog и код VHDL для FPGA и проекты ASIC с помощью HDL Coder™.
Входные параметры не могут быть типом данных logical .
Основанная на потоке среда
Запустите код в фоновом режиме с помощью MATLAB® backgroundPool или ускорьте код с Parallel Computing Toolbox™ ThreadPool .
Эта функция полностью поддерживает основанные на потоке среды. Для получения дополнительной информации смотрите функции MATLAB Запуска в Основанной на потоке Среде.
Массивы графического процессора
Ускорьте код путем работы графического процессора (GPU) с помощью Parallel Computing Toolbox™.
Указания и ограничения по применению:
- 64-битные целые числа не поддерживаются.
Для получения дополнительной информации смотрите функции MATLAB Запуска на графическом процессоре (Parallel Computing Toolbox) .
Распределенные массивы
Большие массивы раздела через объединенную память о вашем кластере с помощью Parallel Computing Toolbox™.
Эта функция полностью поддерживает распределенные массивы. Для получения дополнительной информации смотрите функции MATLAB Запуска с Распределенными Массивами (Parallel Computing Toolbox) .
Умножить массив на число (PHP)
Операции умножения массива на число в PHP нет, если умножить переменную типа массив на число, появится ошибка Fatal error: Unsupported operand types in . on line ..
Чтобы умножить массив можно пойти двумя путями.
Первый: использовать функцию array_walk() или array_walk_recursive() для многомерных массивов.
Второй: перебрать все элементы массива при помощи цикла и умножить каждый элемент.
array_walk умножение
Данный способ работает на PHP 5 >= 5.3
Например есть массив $array , который нужно умножить на 5, воспользуемся функцией array_walk() .
> ); print_r($array);?php>
Результат
На экране вы увидите:
Array ( [0] => 10 [1] => 30 [2] => Array ( [0] => 7 [1] => 9 [2] => 11 ) [3] => 15 [4] => 25 [5] => 20 )
Как видите на экране, умножились значения только верхнего уровня, значения вложенных массивов остались без изменений.
array_walk_recursive уномжение
Данный способ работает на PHP 5 >= 5.3
Чтобы умножить все значения многомерного массива на 5, необходимо воспользоваться функцией array_walk_recursive() .
В качестве исходных данных, возьмем массив из первого примера.
> ); print_r($array);?php>
Результат
На экране вы увидите:
Array ( [0] => 10 [1] => 30 [2] => Array ( [0] => 35 [1] => 45 [2] => 55 ) [3] => 15 [4] => 25 [5] => 20 )
Теперь умножены абсолютно все значения в массиве.
foreach умножение
Второй способ, как упоминалось выше, перебор всех элементов массива в цикле и их умножение.
Возьмем исходный массив из первого примера, и умножим его на 7.
Результат
Array ( [0] => 14 [1] => 42 [2] => Array ( [0] => 7 [1] => 9 [2] => 11 ) [3] => 21 [4] => 35 [5] => 28 )
Как видно, умножились только элементы верхнего уровня. Элементы вложенного массива остались без изменений.
Чтобы умножить абсолютно все элементы массива, при помощи конструкции foreach , необходимо создать функцию и в цикле проверять тип переменной значения $value , и если это массив, то рекурсивно вызвать функцию.
Для частого выполнения операции умножения значений массива, лучше написать функцию.
array_multiply() умножение значений одномерных массивов и array_multiply_recursive() .
Функция array_multiply
Функция умножения значений одномерного массива на число. Принимает 2 параметра, массив и число.
Результат
На экране вы увидите, естественно значения вложенных массивов останутся без изменений.
Array ( [0] => 16 [1] => 48 [2] => Array ( [0] => 7 [1] => 9 [2] => 11 ) [3] => 24 [4] => 40 [5] => 32 )
Функция array_multiply_recursive
А вот для умножения многомерных массивов, как мне кажется, лучше использовать функцию array_walk_recursive() .
Результат
Все значения массива умножились на 13.
Array ( [0] => 26 [1] => 78 [2] => Array ( [0] => 91 [1] => 117 [2] => 143 ) [3] => 39 [4] => 65 [5] => 52 )
✖ ❤ Мне помогла статья нет оценок
8616 просмотров нет комментариев Артём Фёдоров 18 ноября 2013
Категории
Читайте также
- Цикл в обратном порядке (PHP)
- Преобразовать массив в объект (PHP)
- foreach vs array_walk (PHP)
- Массив уникальных значений (JavaScript)
- Ассоциативный массив в JavaScript
- Как записать массив в файл (PHP)
- Заполнить массив случайными числами (PHP)
- Получить последнее значение массива (PHP)
- Получить первое значение массива (PHP)
- Массив в строку (JavaScript)
- Получить массив ключей (PHP)
- Сортировать числовой массив (JavaScript)
Комментарии
Написать комментарий
© Экспэнч 2010-2024
При полном или частичном копировании статей сайта указывайте пожалуйста ссылку на источник
Хотите узнать больше информации, пишите на: artem@expange.ru
Вход на сайт
Введите данные указанные при регистрации:
Социальные сети
Вы можете быстро войти через социальные сети:
Как умножить каждый элемент js массива на 2
Можно воспользоваться методом arr.forEach он позволяет запускать функцию для каждого элемента массива.
18 октября 2022
Воспользуемся методом reduce() , который вызывает функцию-коллбэк на каждом элементе массива, а результат вызова накапливает в аккумуляторе.
const arr = [1, 2, 3, 4, 5]; const multiplyByTwo = (array) => array .reduce((acc, el) => acc.push(el * 2); return acc; >, []); console.log(multiplyByTwo(arr)); // => [2, 4, 6, 8, 10]
20 октября 2021
Для этого можно воспользоваться методом map() , который перебирает и преобразовывает каждый элемент массива согласно колбек функции, которая в него передана. Например:
x * 2); console.log(newCollection); // => [2, 4, 6];