簡體   English   中英

Matlab中的下標分配維不匹配為什么?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM