Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Matlab 矩形空矩阵赋值不当,如何解决此错误_Matlab - Fatal编程技术网

Matlab 矩形空矩阵赋值不当,如何解决此错误

Matlab 矩形空矩阵赋值不当,如何解决此错误,matlab,Matlab,我试图通过RS232将basys 2的二进制数据样本通过COM4电缆发送到matlab,但matlab给出了“矩形空矩阵的不正确分配”错误。 这是我的MATLAB代码 clc;clear all; close all; delete(instrfind); %% SERIAL PORT COMMUNICATION (RS-232 Interface) %% Parameters s = serial('COM4'); % Modify COM4 according to your COM por

我试图通过RS232将basys 2的二进制数据样本通过COM4电缆发送到matlab,但matlab给出了“矩形空矩阵的不正确分配”错误。 这是我的MATLAB代码

clc;clear all; close all; delete(instrfind);
%% SERIAL PORT COMMUNICATION (RS-232 Interface)
%% Parameters
s = serial('COM4'); % Modify COM4 according to your COM port
set(s,'BaudRate',115200); %DO NOT MODIFY (FIXED BAUDRATE)
set(s,'InputBufferSize',2^10);  % 1024 byte (you don't have to modify)
set(s,'OutputBufferSize',2^10); % 1024 byte (you don't have to modify)
get(s) % Properties of your serial port

%index parameters
k=1;
nofElem=21; %Number of receive samples (21 for test samples) MODIFY FOR DATA samples
decdata=zeros(1,nofElem); % integer data

%% Read From Serial Port
fopen(s);
while (1)  
decdata(k) = fread(s,1);
k=k+1;
if k == nofElem 
    break; % break the inf loop
end
end
fclose(s);
plot(decdata)

尝试将代码更改为以下内容。 我只是添加了一个检查,以查看是否从串行端口读取了内容,并查看未读取内容的原因

fopen(s);

while (k<nofElem)
   tic
   aux=fread(s,1);
   t=toc;
   if(isempty(aux))
       if t>=get(s,'Timeout')
          error('Timeout. Waited for too long')
       else
          error('Nothing read from serial port and I dont know why');
       end
   end
   decdata(k) = aux;
   k=k+1;

end
fopen;
while(k=get(s,'Timeout'))
错误('超时。等待的时间太长')
其他的
错误(“没有从串行端口读取任何内容,我不知道原因”);
结束
结束
decdata(k)=aux;
k=k+1;
结束

尝试将代码更改为以下内容。 我只是添加了一个检查,以查看是否从串行端口读取了内容,并查看未读取内容的原因

fopen(s);

while (k<nofElem)
   tic
   aux=fread(s,1);
   t=toc;
   if(isempty(aux))
       if t>=get(s,'Timeout')
          error('Timeout. Waited for too long')
       else
          error('Nothing read from serial port and I dont know why');
       end
   end
   decdata(k) = aux;
   k=k+1;

end
fopen;
while(k=get(s,'Timeout'))
错误('超时。等待的时间太长')
其他的
错误(“没有从串行端口读取任何内容,我不知道原因”);
结束
结束
decdata(k)=aux;
k=k+1;
结束

尝试将代码更改为以下内容。 我只是添加了一个检查,以查看是否从串行端口读取了内容,并查看未读取内容的原因

fopen(s);

while (k<nofElem)
   tic
   aux=fread(s,1);
   t=toc;
   if(isempty(aux))
       if t>=get(s,'Timeout')
          error('Timeout. Waited for too long')
       else
          error('Nothing read from serial port and I dont know why');
       end
   end
   decdata(k) = aux;
   k=k+1;

end
fopen;
while(k=get(s,'Timeout'))
错误('超时。等待的时间太长')
其他的
错误(“没有从串行端口读取任何内容,我不知道原因”);
结束
结束
decdata(k)=aux;
k=k+1;
结束

尝试将代码更改为以下内容。 我只是添加了一个检查,以查看是否从串行端口读取了内容,并查看未读取内容的原因

fopen(s);

while (k<nofElem)
   tic
   aux=fread(s,1);
   t=toc;
   if(isempty(aux))
       if t>=get(s,'Timeout')
          error('Timeout. Waited for too long')
       else
          error('Nothing read from serial port and I dont know why');
       end
   end
   decdata(k) = aux;
   k=k+1;

end
fopen;
while(k=get(s,'Timeout'))
错误('超时。等待的时间太长')
其他的
错误(“没有从串行端口读取任何内容,我不知道原因”);
结束
结束
decdata(k)=aux;
k=k+1;
结束


哪一行给出了这个错误?decdata(k)=fread(s,1)我认为这个错误可能是重复的,因为
fread
用于读取二进制文件。您可能正在查找
fscanf
。Read:我正在串行发送二进制数,fscanf不起作用。哪一行给出了这个错误?decdata(k)=fread(s,1)可能重复此错误是因为
fread
用于读取二进制文件。您可能正在查找
fscanf
。读取:我以串行方式发送二进制数,fscanf不起作用。哪一行出现此错误?decdata(k)=fread(s,1)可能重复此错误是因为
fread
用于读取二进制文件。您可能正在查找
fscanf
。读取:我以串行方式发送二进制数,fscanf不起作用。哪一行出现此错误?decdata(k)=fread(s,1)我相信这个错误可能是重复的,因为
fread
是用来读取二进制文件的。你可能正在寻找
fscanf
。Read:我是串行发送二进制数的,fscanf不起作用。当然
而k~=nofElem
?@Dan是的,我认为更好,但这仍然有效,并且对操作代码的干扰更少。我会的可能使用
k
。如果以某种方式(神奇地)
k
变得比
nofElem
大,这将停止循环-
k~=nofElem
不会。或者有任何理由反对使用
@hbaders吗?我不知道是否有!我肯定在使用
当然
而k~=nofElem
?@Dan是的,我认为更好,但这仍然有效,而且与OP-code相比,我没有那么麻烦我可能会使用
k
。如果有什么(神奇的)
k
变得比
nofElem
大,这将停止循环-
k~=nofElem
不会。或者有任何理由反对使用
@hbaders吗?我不知道是否有!我肯定在使用
当然
而k~=nofElem
?@Dan是的,我认为更好,但这仍然有效,而且与OP-code相比,我没有那么麻烦我可能会使用
k
。如果有什么(神奇的)
k
变得比
nofElem
大,这将停止循环-
k~=nofElem
不会。或者有任何理由反对使用
@hbaders吗?我不知道是否有!我肯定在使用
当然
而k~=nofElem
?@Dan是的,我认为更好,但这仍然有效,而且与OP-code相比,我没有那么麻烦我可能会使用
k
。如果
k
以某种方式(神奇地)变得大于
nofElem
,这将停止循环-
k~=nofElem
不会。或者有任何理由不使用
@hbaders吗?我不知道是否有!我肯定在使用