订阅分配维度在matlab中不匹配为什么?

时间:2016-05-26 06:54:30

标签: matlab math matrix simulink

我编写了这个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)的输出。

任何人都可以为此提供帮助。

问候

1 个答案:

答案 0 :(得分:0)

尝试

<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             xmlns:converters="clr-namespace:Test.Converters;assembly=Test"
             x:Class="Test.Views.ImagePage">
  <ContentPage.Resources>
    <ResourceDictionary>
      <converters:Base64ToImageSourceConverter x:Key="Base64ToImageSourceConverter"/>
    </ResourceDictionary>
  </ContentPage.Resources>
  <Image
    Source="{Binding Image, Converter={StaticResource Base64ToImageSourceConverter}}"
    VerticalOptions="Center"
    HorizontalOptions="FillAndExpand" />
</ContentPage>

而不是

m = numel(B);