查看: 166|回复: 2|关注: 0

[已解决] 正逆指标归一化代码问题:位置 1 的索引无效。数组索引必须为正整数或逻辑值。

[复制链接]

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
function [ X ] = rscor( A1,N )
A1=[1 2 3 4 5 3
    1 4 2 7 8 5
    3 2 6 7 9 1]
N=[1 1 2 1 2 2]
%RSCORE 此函数用来实现极差归一化
%函数实现按列归一化
%X_out:归一化后的矩阵
%X_in:矩阵,需要归一化的矩阵
%N: 正整数,N=1,正指标归一化,N = 2,逆指标归一化
[p,n]=size(A1)
[w,q]=size(N)
maxx = max(A1)
minn = min(A1)
m = maxx-minn
X = zeros(n)
for j=1:q
  if N(:,j) == 1  
            X(i,j) = (A1(i,j) - minn(:,j))/m(j)
  elseif N(:,j) == 2
            X(i,j) = (maxx(:,j)-A1(i,j))/m(j)
        end
    end
end

  X(i,j) = (A1(i,j) - minn(:,j))/m(j)这一行出现了问题,请问是什么原因呢?这个极差变换法的代码能实现正逆指标的归一化吗?

回复主题 已获打赏: 0 积分

举报

MATLAB 基础讨论
版块优秀回答者

入门

434 麦片

财富积分


50500


21

主题

251

帖子

51

最佳答案
  • 关注者: 6
发表于 2020-6-30 17:12:07 | 显示全部楼层 |此回复为最佳答案
本帖最后由 15631202458 于 2020-6-30 17:19 编辑

抛开逻辑问题,出现问题是因为你i没有赋值,没有赋值的话matlab默认i是虚数吧。
在循环前面加入i=1;可以执行,不报错。
回复此楼 已获打赏: 0 积分

举报

新手

7 麦片

财富积分


050


1

主题

2

帖子

0

最佳答案
 楼主| 发表于 2020-6-30 17:35:05 | 显示全部楼层
15631202458 发表于 2020-6-30 17:12
抛开逻辑问题,出现问题是因为你i没有赋值,没有赋值的话matlab默认i是虚数吧。
在循环前面加入i=1;可以执 ...

谢谢!非常感谢,新手需要用MATLAB写作业,急了好几天了,非常感谢您的解答
回复此楼 已获打赏: 0 积分

举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

快速回复 返回顶部 返回列表