Матрица сцепления в MATLAB - PullRequest
       6

Матрица сцепления в MATLAB

0 голосов
/ 13 февраля 2011

У меня есть этот код в Mathematica:

nxBin = Table[{-5 sX + (i - 0.5)*step, nBin[[i]]}, {i, 1, Length[nBin]}]

, и я сделал это в MATLAB:

a=zeros(length(nBin),1);
nxBin=zeros(length(nBin),1);
for i=1:length(nBin)
    anew=a*step*(i-0.5) -5*sX;
    b=zeros(length(nBin(i)),1);
nxBin(i,:)=[anew , b]
end

, но MATLAB говорит

???Ошибка при использовании ==> horzcat
Размеры аргументов CAT не согласованы.

Ошибка в ==> начинается с 52
nxBin (i,:) = [заново, b]

Может кто-нибудь сказать мне, почему я получаю эту ошибку?Кроме того, я могу сделать это с меньшим количеством строк?

1 Ответ

2 голосов
/ 13 февраля 2011

Вы хотите объединить массив nBin размером n на 1 с шагами (вероятно, значения x для гистограммы).Таким образом, вы можете просто создать «х-вектор» и объединить их.

nxBin = [ -5*sX + ((1:length(nBin))' - 0.5) * nStep, nBin(:)]

Вот тот же пошаговый шаг

%# make a vector with values from 1 to nBin
x = 1:length(nBin);
%# transpose, since it's 1-by-n and we want n-by-1
x = x'; %'#
%# apply the modification to x
x = -5*sX + (x-0.5)*nStep;
%# catenate with nBin (the colon operator guarantees it's n-by-1
nxBin = [x, nBin(:)];

РЕДАКТИРОВАТЬ

Если вы хотите построить это, вы можете

plot(nxBin(:,1),nxBin(:,2),'.')

или, если я угадаю, и это гистограмма

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