You_Lii 2021-12-13 16:53 采纳率: 75%
浏览 39
已结题

(MATLAB)请问怎么怎么进行合理化的简化,计算一组数据写出来就可以,但是我有5组数据,使用矩阵和for循环一直出错


###### 问题遇到的现象和发生背景 
a=[1.8402     2.2128     3.2204     1.5977     2.1502     1.5730     2.4017] ;
b0=[1.0609     2.1789     3.4293     1.8842     2.4043     1.6937     2.5317 ];


%夹角余弦(Cosine)
    X= [a;b0];
    D = 1- pdist(X, 'cosine'); %得到的是1减夹角余弦的值
    %M = pdist(X(i),'mahalanobis');%马氏距离
    %S = pdist(X(i), 'seuclidean',[0.5,1]);%加权欧氏距离
    C = corrcoef( X' ) ;  %将返回相关系数矩阵
    Co = pdist( X , 'correlation'); %将返回相关系数距离
disp(X);
disp(D);
disp(C);
disp(Co);
%%%%%%%%%%%%%%%%
b1=[1.5388     2.4122     3.0286     1.7177     2.3021     1.5988     2.3754 ];
b2=[1.6398     2.2983     3.0804     1.7667     2.3327     1.4960     2.3154 ];
b3=[1.6660     2.3066     3.0288     1.7727     2.3274     1.5178     2.3540 ];
b4=[1.7019     2.2130     2.9409     1.8149     2.3806     1.5597     2.2804 ];
b5=[1.5875     2.2938     3.0275     1.7381     2.2686     1.6361     2.4759 ];
问题相关代码,请勿粘贴截图
运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

怎么用合理的for循环和矩阵来简化呢,想要得到 a与上面012345的相应值

  • 写回答

2条回答 默认 最新

  • qq_314378011 2021-12-14 10:12
    关注
    
    %数据
    a=[1.8402     2.2128     3.2204     1.5977     2.1502     1.5730     2.4017] ;
    b0=[1.0609     2.1789     3.4293     1.8842     2.4043     1.6937     2.5317 ];
    b1=[1.5388     2.4122     3.0286     1.7177     2.3021     1.5988     2.3754 ];
    b2=[1.6398     2.2983     3.0804     1.7667     2.3327     1.4960     2.3154 ];
    b3=[1.6660     2.3066     3.0288     1.7727     2.3274     1.5178     2.3540 ];
    b4=[1.7019     2.2130     2.9409     1.8149     2.3806     1.5597     2.2804 ];
    b5=[1.5875     2.2938     3.0275     1.7381     2.2686     1.6361     2.4759 ];
    for i = 1:1:6 
        X = ['X',num2str(i)];
        b = ['b',num2str(i-1)];
        D = ['D',num2str(i)];
        C = ['C',num2str(i)];
        Co = ['Co',num2str(i)];
        eval([X,'=[a;',b,']']);
        eval([D,'=1-pdist(',X,',''cosine'');']);
        eval([C,'=corrcoef(',X,''' )']);
        eval([Co,' = pdist(',X,', ''correlation'')']);
    %     eval(['disp(',X,');']);
    %     eval(['disp(',D,');']);
    %     eval(['disp(',C,');']);
    %     eval(['disp(',Co,');']);
    % %%%%%%%%%%%%%%%%
    end
    

    你看这样满足你的需求吗,按照循环分别将不同下标的b0,b1,...,b5数据与a进行计算,结果保存在Di,Ci,Coi,其中i=1,2,...,6
    若想显示,去除后4个注释即可。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 12月22日
  • 已采纳回答 12月14日
  • 创建了问题 12月13日

悬赏问题

  • ¥15 echarts动画效果失效的问题。官网下载的例子。
  • ¥60 许可证msc licensing软件报错显示已有相同版本软件,但是下一步显示无法读取日志目录。
  • ¥15 Attention is all you need 的代码运行
  • ¥15 一个服务器已经有一个系统了如果用usb再装一个系统,原来的系统会被覆盖掉吗
  • ¥15 使用esm_msa1_t12_100M_UR50S蛋白质语言模型进行零样本预测时,终端显示出了sequence handled的进度条,但是并不出结果就自动终止回到命令提示行了是怎么回事:
  • ¥15 前置放大电路与功率放大电路相连放大倍数出现问题
  • ¥30 关于<main>标签页面跳转的问题
  • ¥80 部署运行web自动化项目
  • ¥15 腾讯云如何建立同一个项目中物模型之间的联系
  • ¥30 VMware 云桌面水印如何添加