Как я могу добавить значения в 2D массив? - PullRequest
1 голос
/ 23 июня 2010

Я новичок в MATLAB и не могу понять это из документации.

function GotData(sender, args)
    interval = args.DataBlock.TimeIntervalInMicroseconds;
    doubles = args.DataBlock.AsDoubleArray();
    x = 0;
    complexCount = length(double(doubles))/2;
    DATA = zeros(complexCount);
    for index = 1:(complexCount-1)
        realnum = doubles(2 * index);
        imagnum = 1i * doubles(2 * index + 1);
        complex = realnum + imagnum;
        x = x + interval;
        DATA(index) = [x complex];
    end
    disp(DATA)
end

Я получаю массив значений типа double с события, которое запускается в сборке .NET.Я делю массив так, чтобы каждый четный элемент (в массиве на основе 1) представлял собой воображаемое число, а каждый нечетный элемент действительный.Затем я создаю массив из двух элементов комплексного числа и его интервал.Я хочу затем добавить этот 1D массив в 2D массив.Как мне это сделать?

В данный момент я получаю сообщение об ошибке: In an assignment A(I) = B, the number of elements in B and I must be the same..Что я должен делать?

interval равен 1, но его можно настроить.

Ответы [ 2 ]

2 голосов
/ 23 июня 2010

Я писал тот же ответ, что и gnovice, но он выстрелил первым.:)

Кроме того, если реальные данные соответствуют нечетным элементам, а мнимые - четным, вы должны изменить назначения::

%# ... code to get doubles and interval variables
n = numel(doubles);
realnum = doubles(1:2:n)';
imagnum = 1i * doubles(2:2:n)';
x = interval.*(1:numel(realnum)).';
DATA = [x realnum + imagnum];
2 голосов
/ 23 июня 2010

Если вы хотите, чтобы DATA был двумерным массивом, вам нужно его инициализировать и проиндексировать следующим образом:

% ...(your code)...
DATA = zeros(complexCount-1, 2);   % Initialize DATA to an N-by-2 matrix
% ...(your code)...
    DATA(index, :) = [x complex];  % Add the array to a row of DATA
% ...(your code)...

Вы можете проверить эти ссылки документации MathWorks для получения дополнительной информации о создание матриц и индексирование матриц в MATLAB.

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