Как выполнить операции со строками матрицы, сохраняя матрицу нетронутой? - PullRequest
0 голосов
/ 28 октября 2019

Сводка вопроса / проблемы:

Создайте матрицу 10 на 10, первый столбец которой - числа 1,2,3,4,5,6,7,8,9,10
следующий столбец содержит квадраты первого столбца: 1, 4, 9, ..., 100
третий столбец содержит 3-ю степень первого столбца: 1,8, 27, ..., 1000 .
10-й столбец содержит 10-ую степень первого столбца.

Фон:

Это для назначения класса, вступлениеаналитическому программированию. Я пробовал следующий код, но я не уверен, почему он не дает правильный вывод. Любые советы или предложения приветствуются.

    row1 = [1:10]
    tenXtenMatrix = repmat(row1,10,1)
    [row col] = size(tenXtenMatrix)
    for i=2:row
        for j=1:col
            tenXtenMatrix(i,:).^i
        end
    end

что ожидается:

     1     2     3     4     5     6         7        8           9          10

     1     4     9    16    25    36        49       64          81         100

     1     8    27    64    125   216      343      512         729        1000

     1    16    81    256   625   1296    2401     4096        6561       10000
     etc..

что я получил:

    0.0000  0.0000   0.0000  0.0001   0.0010 0.0060  0.0282 0.1074  0.3487  1.0000
    0.0000  0.0000   0.0000  0.0001   0.0010 0.0060  0.0282 0.1074  0.3487  1.0000
    0.0000  0.0000   0.0000  0.0001   0.0010 0.0060  0.0282 0.1074  0.3487  1.0000
    0.0000  0.0000   0.0000  0.0001   0.0010 0.0060  0.0282 0.1074  0.3487  1.0000
    etc...

Ответы [ 2 ]

3 голосов
/ 28 октября 2019

Использование неявного расширения :

x = 1:10  
A = x.^(x.')

Где:

Дополнительные сведения о неявном расширении здесь .

0 голосов
/ 28 октября 2019

Исправления:

  1. вы работаете на j и не используете его.
  2. вы рассчитываете мощность, но не обновляете матрицу
    row1 = [1:10];
    tenXtenMatrix = repmat(row1,10,1);
    [row col] = size(tenXtenMatrix);
    for i=2:row
      tenXtenMatrix(i,:) = tenXtenMatrix(i,:).^i;
    end


Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...