作业帮 > 综合 > 作业

求教matlab问题for k=1:epochNUM%data=ones(k,num_sats)*NAN;code=Ob

来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/11 06:00:00
求教matlab问题
for k=1:epochNUM
%data=ones(k,num_sats)*NAN;
code=ObsODat(k).SatCode;
PP1=ObsODat(k).Obs_RangeP1;
PP2=ObsODat(k).Obs_RangeP2;
LL1=ObsODat(k).Obs_FreL1;
LL2=ObsODat(k).Obs_FreL2;
for j=1:num_sats
I=find(code==num_PRN(j));
if isempty(I)
fprintf('Error in finding unique satellites in REFRINEX.\n');
return;
end
data_P1(k,j)=PP1(I);
data_P2(k,j)=PP2(I);
data_L1(k,j)=LL1(I);
data_L2(k,j)=LL2(I);
end
end
这是我程序的部分,主要问题是,读第一行数据,得到的code,与设定好的num_PRN进行比较,然后对数据PP1,等进行存储,但是读第二行及后面行的时候,code(从文本文件中读取)的值和num_PRN一样了.怎么样才能让每一次读取的code值是原文件中的排列方式,
求教matlab问题for k=1:epochNUM%data=ones(k,num_sats)*NAN;code=Ob
你说的从第二行开始“code的值和num_PRN一样”是什么概念?
从你的代码看,可能改变code值的只有一句:
code=ObsODat(k).SatCode;
应该不会是这段代码误改了code.
因为没有你的具体数据,只能作如下猜测:code是一个向量,包括了多个卫星的编号,而num_PRN也是一个向量,可能的含义是希望显示或打印的卫星编号,二者的可能取值范围应该相同,但具体向量应该是不一样的
再问: 不一样,num_PRN 表示的是,一个观测文件中,出现的所有卫星号的集合,而code只是每一个历元的观测卫星号,现在我想判断code和num_PRN比较,把code对应卫星的观测类型值(P1,P2等)按矩阵【历元,卫星号】格式存储。 在进行find判断时,历元k从第二个开始时。code=ObsODat(k).SatCode;但是,显示的却是和num_PRN一样的排序(num_PRN排序是升序排列),而不是观测文件中所观测到的卫星号排列
再答: 我觉得问题应该出在这段代码之外。 请你在这段代码之前设个断点(比如,就设在for k的位置),看看ObsODat(2).SatCode是否已经存在你说的问题。 还解决不了的话,可把能够复现你的问题所需代码和数据文件发给我(企鹅522319871),我帮你查。