qq_43327800 2019-01-05 18:39 采纳率: 14.3%
浏览 14145
已采纳

MATLAB 索引超出矩阵维度。

开始运行程序没问题,后面在今天用的时候突然提示“索引超出矩阵维度。”我代码和数据集都没换过。。。不知道原因,求大神解一下

function [acc,G,Cls] = GFK(X_src,Y_src,X_tar,Y_tar,dim)
    Ps = pca(X_src);
    Pt = pca(X_tar);
    G = GFK_core([Ps,null(Ps')], Pt(:,1:dim));
    [Cls, acc] = my_kernel_knn(G, X_src, Y_src, X_tar, Y_tar);
end
function G = GFK_core(Q,Pt)

    N = size(Q,2); % 
    dim = size(Pt,2);

    % compute the principal angles
    QPt = Q' * Pt;
    [V1,V2,V,Gam,Sig] = gsvd(QPt(1:dim,:), QPt(dim+1:end,:));
    V2 = -V2;
    theta = real(acos(diag(Gam))); % theta is real in theory. Imaginary part is due to the computation issue.

    % compute the geodesic flow kernel
    eps = 1e-20;
    B1 = 0.5.*diag(1+sin(2*theta)./2./max(theta,eps));
    B2 = 0.5.*diag((-1+cos(2*theta))./2./max(theta,eps));
    B3 = B2;
    B4 = 0.5.*diag(1-sin(2*theta)./2./max(theta,eps));
    G = Q * [V1, zeros(dim,N-dim); zeros(N-dim,dim), V2] ...
        * [B1,B2,zeros(dim,N-2*dim);B3,B4,zeros(dim,N-2*dim);zeros(N-2*dim,N)]...
        * [V1, zeros(dim,N-dim); zeros(N-dim,dim), V2]' * Q';
end

我重新去下了原文件,还是提示索引超出矩阵维度。
此外还进行了断点测试,根本进不了GFK_core的函数里面图片说明图片说明

  • 写回答

2条回答 默认 最新

  • qq_43327800 2019-01-06 10:29
    关注

    刚刚解决了,MATLAB里面我加了drtoolbox的降维包,并且修改了pathdef.m的文件,然后就不能用的,原因尚不清楚

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 请专家看看这个问题出在哪里?
  • ¥15 tensorrt 推理 yolov8框出现错误
  • ¥15 用hc 05,做蓝牙控制小车 小车只能说初始遥控方向影响,后续不能更改
  • ¥15 51单片机怎么把每次输入键值保存到数组作为我的确认键的判断条件呢
  • ¥15 c语言字符串单词入门问题报错
  • ¥30 我现在是双非人工智能专业不知道要不要转到软件工程专业
  • ¥15 请问12脉波整流机组的外特性曲线具体是如何推导
  • ¥15 abaqus里的python算法
  • ¥100 如何在思科模拟器中进入CEF模式
  • ¥15 Simulink 仿真如何使用MATLAB function模块获取到仿真过程中某一仿真时刻输入到模块的函数的值?