Стол Пауэрс MATLAB - PullRequest
       1

Стол Пауэрс MATLAB

0 голосов
/ 04 декабря 2011

Для этого вопроса я должен создать таблицу мощностей NxN в matlab с использованием массивов.

Код, который у меня есть, выглядит следующим образом:

C = [];
D = [];

N = input('Enter the value you would like to use for your NxN Powers Table: ');

for i = 1:N 
    for j = 1:N  
        C = [C;i^j];    
    end  
    C = transpose(C);
    D = [D;C];  
    C = [];
end

D

Этот код работаетотлично подходит для любых чисел от 1 до 9, как только я ввожу что-то большее, он выводит странные значения.

Вот вывод, который я использую в качестве ввода 5, а второй использует10 в качестве ввода.

Enter the value you would like to use for your NxN Powers Table: 5

D =

       1           1           1           1           1
       2           4           8          16          32
       3           9          27          81         243
       4          16          64         256        1024
       5          25         125         625        3125


Enter the value you would like to use for your NxN Powers Table: 10

D =

  1.0e+010 *

0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0001
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0002    0.0010
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0002    0.0010    0.0060
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0001    0.0006    0.0040    0.0282
0.0000    0.0000    0.0000    0.0000    0.0000    0.0000    0.0002    0.0017    0.0134    0.1074
0.0000    0.0000    0.0000    0.0000    0.0000    0.0001    0.0005    0.0043    0.0387    0.3487
0.0000    0.0000    0.0000    0.0000    0.0000    0.0001    0.0010    0.0100    0.1000    1.0000

Есть идеи, что может быть не так с моим кодом?Похоже на простое исправление, я просто не могу понять, что с ним не так.Любая помощь очень ценится.Спасибо

Ответы [ 2 ]

1 голос
/ 04 декабря 2011

Я думаю, ваш код работает нормально. Обратите внимание, что 10 ^ 10 = 1e10; самый последний элемент в вашем выводе D действительно равен 1e10. Проверьте отдельные элементы D(i,j), чтобы убедиться в их правильности. MATLAB не может отобразить все элементы, потому что некоторые элементы намного больше других; Например, 1e10 содержит 10 цифр, а 1 ^ 1 = 1 содержит 1 цифру. Таким образом, интервал будет испорчен, если такого поведения не произойдет.

1 голос
/ 04 декабря 2011

Обратите внимание на 1.0e+010 *. Это означает, что числа должны быть умножены на 10000000000. Пяти цифр недостаточно, чтобы напечатать его. Введите format long или format short g, чтобы увидеть целые числа.

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