爱吃炸鸡的小胖妞 2023-02-12 00:00 采纳率: 50%
浏览 17
已结题

想把这个公式变成R代码,但是第二项总是编错,请大家帮帮我!

我想把这个公式变成R代码,但是第二项总是编错,请大家帮帮我!

CD=function(x){  ##### x表示输入的设计矩阵#####
n=nrow(x)
m=ncol(x)

f=array(0,dim=c(n,1))
for(i in 1:n)
       {
       
       u=array(0,dim=c(1,m))
       for(j in 1:m)
          {
          
          u[1,j]=1+(1/2)*((x[i,j]-0.5)^2)^(1/2)-(1/2)*(x[i,j]-0.5)^2
          
          }
          
         j=1
         f[i,1]=1
         while(j<=m) {
                     f[i,1]=f[i,1]*u[1,j]
                     i=i+1
                     }
                     
    
        }        
    
g=array(0,dim=c(n,n))
for(i in 1:n)
    {for(k in 1:n)
       {
        
         v=array(0,dim=c(1,m))
         for(j in 1:m)
        {
             
             v[1,j]=1+(1/2)*((x[i,j]-0.5)^2)^(1/2)+(1/2)*((x[k,j]-0.5)^2)^(1/2)-(1/2)*((x[i,j]-x[k,j])^2)^(1/2) 
          
            }
        
         j=1
         g[i,k]=1
         while(j<=m) {
                     g[i,k]=g[i,k]*v[1,j]
                     j=j+1
                     }
             
        }
    }
    
CD=(13/12)^m-(1/n)*sum(f)+(1/n^2)*sum(g)
CD
}

d=matrix(c( 
0,1,1,1,0,1,0,1,0,0,1,1,1,1,0,1, 
1,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0, 
1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 
1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1, 
0,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1, 
1,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1, 
1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0, 
1,0,0,1,0,1,1,0,1,0,1,0,0,0,1,0
),ncol=16,nrow=8,byrow=T)
CD(d)


```我一下!

![img](https://img-mid.csdnimg.cn/release/static/image/mid/ask/761879031676181.jpg "#left")
  • 写回答

1条回答 默认 最新

  • Liamttk10 2023-02-12 09:19
    关注
    
    CD=function(x){  # x表示输入的设计矩阵
      n=nrow(x)
      m=ncol(x)
     
      f=array(0,dim=c(n,1))
      for(i in 1:n) {
        u=array(0,dim=c(1,m))
        for(j in 1:m) {
          u[1,j]=1+(1/2)*sqrt((x[i,j]-0.5)^2)-(1/2)*(x[i,j]-0.5)^2
        }
        j=1
        f[i,1]=1
        while(j<=m) {
          f[i,1]=f[i,1]*u[1,j]
          j=j+1
        }
      }        
        
      g=array(0,dim=c(n,n))
      for(i in 1:n) {
        for(k in 1:n) {
          v=array(0,dim=c(1,m))
          for(j in 1:m) {
            v[1,j]=1+(1/2)*sqrt((x[i,j]-0.5)^2)+(1/2)*sqrt((x[k,j]-0.5)^2)-(1/2)*sqrt((x[i,j]-x[k,j])^2)
          }
          j=1
          g[i,k]=1
          while(j<=m) {
            g[i,k]=g[i,k]*v[1,j]
            j=j+1
          }
        }
      }
        
      CD=(13/12)^m-(1/n)*sum(f)+(1/n^2)*sum(g)
      return(CD)
    }
     
    d=matrix(c( 
    0,1,1,1,0,1,0,1,0,0,1,1,1,1,0,1, 
    1,1,0,1,0,0,1,0,1,0,1,1,1,1,0,0, 
    1,1,1,1,1,0,0,0,0,0,0,0,0,0,0,0, 
    1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,1, 
    0,0,1,1,0,1,1,0,1,0,0,1,0,1,1,1, 
    1,1,1,0,0,1,0,0,1,1,0,1,0,0,1,1, 
    1,0,0,0,1,0,1,0,1,1,0,0,1,0,0,0, 
    1,0,0,1,0,1,1,0,1,0,1,0
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 2月20日
  • 已采纳回答 2月12日
  • 创建了问题 2月12日

悬赏问题

  • ¥15 微信小程序协议怎么写
  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看