楼主: lucyber
1374 3

matlab程序问题 [推广有奖]

  • 0关注
  • 1粉丝

已卖:244份资源

博士生

8%

还不是VIP/贵宾

-

威望
0
论坛币
1668 个
通用积分
0.0600
学术水平
1 点
热心指数
2 点
信用等级
1 点
经验
465 点
帖子
55
精华
0
在线时间
387 小时
注册时间
2010-4-25
最后登录
2016-6-3

楼主
lucyber 发表于 2010-9-19 00:41:51 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
下面这个程序是为了将SAS中得到的pearson correlation系数表中大于某个阈值的数的索引进行定位:
clear;
clc;
A=xlsread('d:\pearsoncor.xls','sheet1');
alpha=0.6;  %阈值为alpha
[row,column]=size(A);
% m=19;   %m是pearson相关系数表的项的个数
k=1;
% cor_index=zeros(m,2);

for i=1:row
    for j=1:column
        if i==j | i>j
            ;
        else if abs(A(i,j))>alpha
            cor_index(k,1)=i;
            cor_index(k,2)=j;
        end
        end
    k=k+1;
    end
end
cor_index
我想得到的结果应该是:
xx yy
xx yy
xx yy
这样形式的。但是
最后虽然可以得到所要的值,但是没对值中间会有很多的多余的0
0 0
0 0
0 0
......
xx yy
0 0
0 0
......
xx yy
0 0
类似这样的结果
虽然可以直接输出i,j,但是看起来不舒服,还是想把找到的i,j放到一个二维数组里。
请问该如何修改程序?
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB程序 MATLAB atlab matla Mat MATLAB 程序

沙发
wangziyi 发表于 2010-9-19 00:58:21
why don't you use
[r c v] = find(abs(A)>alpha);
corr_index = [r c];

if you have to use loopy loops, to delete zero, you can do
corr_index(any(corr_index ==0,2),:) = [];

藤椅
Xaero 发表于 2010-9-19 01:02:05
A(all(A==0,2),:)=[]

可以把一行全是零的行删除。
已有 1 人评分热心指数 收起 理由
lucyber + 1 给的意见比较中肯

总评分: 热心指数 + 1   查看全部评分

十年一觉扬州梦。
智不足以Academy,才尚不够Industry,[情无力于Life]。

板凳
lucyber 发表于 2010-9-19 11:59:18
谢谢楼上2位的指点

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-7 07:11