[英]Subscripted assignment dimension mismatch in matlab why?
我編寫了此matlab代碼,將圖像矩陣分成大小為787x1000的較小矩陣。
在下面的代碼中:首先,我將讀取圖像,因此I_in = 512x512x3,然后將其更改為二進制並將其重塑為(6291456x1),之后,我計算了所需的幀數(1幀= 1000x1),因此我將需要787然后我將內存分配給幀矩陣。 代碼將在此處輕松解釋步驟
I_in = imread('aaaa.png');
% encoding image into array of bits
B = de2bi(I_in);
X=reshape(double(B),numel(B),1);
m= length(B);
numFrames = floor((m-1)/1000)+1;
% allocate memory to the frame matrix
frameData = zeros(numFrames,1000);
for k=1:numFrames
startAtIdx = (k-1)*1000+1;
if k~=numFrames
frameData(k,:) = X(startAtIdx:startAtIdx+1000-1);
else
% handle this case separately in case the number of input samples
% does not divide evenly by the window size
frameData(k,1:m-startAtIdx+1) = X(startAtIdx:end);
end
end
當我運行它時,它將向我顯示此錯誤:
下標分配尺寸不匹配。
Untitled1(第20行)中的錯誤frameData(k,1:m-startAtIdx + 1)= X(startAtIdx:end);
我不太確定我寫的輸出是否會給我frameData(1x1000)的輸出。
任何人都可以提供幫助。
問候
嘗試
m = numel(B);
代替
m = length(B);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.