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

Как умножить массив на число с

  • автор:

Как умножить массив на число с

Argument ‘Topic id’ is null or empty

Сейчас на форуме

© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru

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

ООО «Планета Эксел»
ИНН 7735603520
ОГРН 1147746834949
ИП Павлов Николай Владимирович
ИНН 633015842586
ОГРНИП 310633031600071

Как умножить массив на число с

Двумерные матрицы в электронной таблице могут быть представлены массивами значений их элементов, записанных в двумерных диапазонах. Чтобы умножить матрицу на какое-либо число, нужно умножить каждый элемент этой матрицы на это число. Иначе говоря, следует умножить массив, содержащий элементы матрицы на число. В 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) .

Умножение элементов массива js

Eсть такой массив: [5, 123, 556, 78, 3] . Kак умножить все элементы массива? B смысле так 5 * 123 * 556 * 78 * 3 .

Отслеживать
10.4k 21 21 золотой знак 25 25 серебряных знаков 53 53 бронзовых знака
задан 30 дек 2020 в 17:19
Мне без сахара Мне без сахара
706 1 1 золотой знак 5 5 серебряных знаков 15 15 бронзовых знаков
попробуйте решить это сами, используйте reduce
30 дек 2020 в 17:23

3 ответа 3

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

Если я правильно поняла вопрос то можно использовать reduce . Так получится

const array = [5, 123, 556, 78, 3]; const res = array.reduce((acc, rec) => acc * rec); console.log(res);

Отслеживать
2,408 4 4 золотых знака 15 15 серебряных знаков 33 33 бронзовых знака
ответ дан 30 дек 2020 в 17:23
91 1 1 бронзовый знак
я так понял «array» это имя массива и rec это элемент массива, а что такое acc?
30 дек 2020 в 17:31

array -это массив с которым нужно провести работу. rec — рессивер, элемент массива acc — аккумулятор, это результат предидущих иттераций.

30 дек 2020 в 17:33

@Мнебезсахара, acc, rec — это значения которые передаются внутрь функции reduce, о том какие параметры передаются можно узнать в документации.

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

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