MATLAB求问(在赋值 A(I)=B 中,B 和 I 中的元素数目必须相同)

这个程序错在哪里,我是MATLAB新手,请指点,谢谢!
clear;
clc;
data=dlmread('E:\麦德姆台风风压和风场同一时刻(修改)\数据筛选结果\原始数据(角度加50).txt');
shaixuan=load('E:\麦德姆台风风压和风场同一时刻(修改)\数据筛选结果\1min\1min最大最小.txt');
speedmax=shaixuan(:,1); %速度最大值
speedmin=shaixuan(:,2); %速度最小值
winddirectionmax=shaixuan(:,3); %风向角最大值
winddirectionmin=shaixuan(:,4); %风向角最小值
fs=25.6; %频率
nlength=length(data); % Data length
averagetime=60; % 以1分钟为平均时距
blockunit=averagetime*fs;
nblock=fix(nlength/blockunit);
for i=1:nblock;
data(i)=data(((i-1)*60*25.6+1):(i*60*25.6),:);
for j=1:length(speedmax);
ind(i)=data(:,1)<speedmax(j)&data(:,2)>speedmin(j)&data(:,2)<winddirectionmax(j) &data(:,2)>winddirectionmin(j);
end
dlmwrite('i.dat',data(ind,:),' ');
end
这是我修改之后的程序。原始数据里面有两列数据,第一列为速度,第二列为风向。1min最大最小中有4列数据,第一列为速度最大值,第二列为速度最小值,第三列为风向角最大值,第四列为风向角最小值。我的目的是要对这些数据进行筛选,先把原始数据分块(1min最大最小就是每块对应的最大值最小值),每块的长度为60*25.6,每一块中的速度、风向角要同时满足在最小值和最大值之间,否则剔除,然后输出筛选之后的数据,

for i=1:nblock
dataa=data(((i-1)*60*25.6+1):(i*60*25.6),:);
A=speedmax(i,:);
B=speedmin(i,:);
C=winddirectionmax(i,:);
D=winddirectionmin(i,:);
ind=dataa(:,1)<A&dataa(:,1)>B&dataa(:,2)<C&dataa(:,2)>D;
dlmwrite('i.dat',dataa(ind,:),' ');
end

你想问什么?
我只知道,这一句会出问题的。data(i)=data(((i-1)*60*25.6+1):(i*60*25.6),:);
一个向量不能赋值给一个数。追问

我想问的是这个循环语句有哪些错误,如何改正过来,谢谢了

温馨提示:内容为网友见解,仅供参考
无其他回答
相似回答