��976 2021-09-10 14:49 采纳率: 86.7%
浏览 734
已结题

matlab报错:元胞内容引用自非元胞数组对象


 filename=uigetfile('*.mat;*.txt');
    f=load(filename);
    for i=1:1:numel(f)
        b=f{i};
        if strncmpi(b,'byb1',4)
         xtm=b;
        elseif strncmpi(a,'byb2',4)
         xtc=b;
        elseif strncmpi(a,'traindata',9)
         xcm=b;
        elseif strncmpi(a,'testdata',8)
         xpc=b;
        elseif strncmpi(a,'trainlab',8)
         yc=b;
        elseif strncmpi(f,'testlab',7)
         yp=b;
        end
    end
  [RMSEP,RMSEC,Ryu,MREyu,xre,yc,xpcm,yp1]=pdspls(xtm,xtc,xcm,xpc,yc,yp,0.01,handles.win,handles.lv);

报错:元胞内容引用自非元胞数组对象。提示我b={i}出错。
图片是我导入工作区里的mat文件,也就是变量f

img

这是哪里出错了?

  • 写回答

2条回答 默认 最新

  • joel_1993 2021-09-10 15:27
    关注

    同学啊,为啥你用f=load(fileName)呢

    filename=uigetfile('*.mat;*.txt');
    f=load(filename);
        for i=1:1:numel(f)
            b=fileName{i};
            if strncmpi(b,'byb1',4)
             xtm=f.{'xtm'};%可以类似这种。。。
            end
        end
      [RMSEP,RMSEC,Ryu,MREyu,xre,yc,xpcm,yp1]=pdspls(xtm,xtc,xcm,xpc,yc,yp,0.01,handles.win,handles.lv);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
  • ��976 2021-09-11 09:43
    关注

    img

    这个花括号这里有点问题。还有变量f是struct结构体,是不是不能这样用啊

    img

    我这样写了,直接调用,这样可以读取了

    
     filename=uigetfile('*.mat;*.txt');
            b=load(filename);
             xtm=b(1).byb1snv; 
             xtc=b(1).byb2snv;
             xcm=b(1).traindatab1snv;
             xpc=b(1).testdatab2snv;
             yc=b(1).trainlab1;
             yp=b(1).testlab1;
      [RMSEP,RMSEC,Ryu,MREyu,xre,yc,xpcm,yp1]=pdspls(xtm,xtc,xcm,xpc,yc,yp,0.01,handles.win,handles.lv);
     
    
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月19日
  • 已采纳回答 9月11日
  • 创建了问题 9月10日

悬赏问题

  • ¥20 arcgis制做交通拥堵时变图
  • ¥15 AD20 PCB板步线 这个要怎么步啊
  • ¥50 关于《奇迹世界》1.5版本,数据修改
  • ¥15 请问这个问题如何解决(关键词-File)
  • ¥50 visual studio 2022和EasyX图形化界面
  • ¥15 找一下报错原因,纠正一下
  • ¥50 Cox回归模型Nomogram图制作报错
  • ¥20 SQL如何查询多级用户的数据
  • ¥15 给车牌识别代码加一个识别轮廓长宽比的代码
  • ¥30 商品价格预测的transformer模型优化