проблема размера при назначении 3D-матрицы - PullRequest
0 голосов
/ 27 ноября 2018

Есть два вопроса.

--- 1 ---

Я могу без проблем назначить меньшую матрицу большей нулевой матрице, например:

a = zeros(5,5,2);
b = [1 2 3];
a = b;

Поэтому я пытаюсь загрузить RawData из файла в 3D-матрицу:

G = ["/Users/ripfreeworld/Documents/MATLAB/RawData/G01.txt",
    "/Users/ripfreeworld/Documents/MATLAB/RawData/G02.txt",
    "/Users/ripfreeworld/Documents/MATLAB/RawData/G03.txt",
    "/Users/ripfreeworld/Documents/MATLAB/RawData/G04.txt"];
rawdata = zeros(1500,200,4);
for i = 1 : 4
    rawdata(:,:,i) = load(G(i),'ascii');
end

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

Затем я прокомментировал строку нулями ().И первая итерация удалась.В чем разница с прежним простым кодом?

--- 2 --- Вторая проблема:

Невозможно выполнить назначение, поскольку размер левой стороны равен 1440-на 152, а размер правой стороны 1440 на 151.

Я обнаружил, что там был дополнительный столбец, заполненный "0".В этот раз я удалил этот столбец вручную, но есть ли способ сохранить 3d-форму (кубическую матрицу?), Автоматически заполняя столбцы / строки меньшей матрицы «0» или выбрасывая данные в дополнительные столбцы / строкибольшой матрицы?

Спасибо!

1 Ответ

0 голосов
/ 27 ноября 2018

Спасибо Adriaan, первый вопрос был начат с неправильного теста перезаписью.По второму вопросу я нашел простое решение, аналогичное

p=zeros(5,10)*1/0;
for i=1:5
    for m=1:10
        if isprime((i-1)*10+m-1)
           p(i,m)=(i-1)*10+m-1;
        end
    end
end
>> p

p =

   NaN   NaN     2     3   NaN     5   NaN     7   NaN   NaN
   NaN    11   NaN    13   NaN   NaN   NaN    17   NaN    19
   NaN   NaN   NaN    23   NaN   NaN   NaN   NaN   NaN    29
   NaN    31   NaN   NaN   NaN   NaN   NaN    37   NaN   NaN
   NaN    41   NaN    43   NaN   NaN   NaN    47   NaN   NaN
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...