爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

新浪微博登陆

只需一步, 快速开始

搜索
查看: 4780|回复: 2

[程序设计] matlab 矩阵运算,for循环太慢?考虑一下逻辑值

[复制链接]

新浪微博达人勋

发表于 2020-6-5 16:32:42 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册 新浪微博登陆

x
题主区分五千多万个点的极化方式,第一个想到的就是for循环加if else,跑了三天500万,后灵机一动,用逻辑值呀,矩阵运算呀,才领会到什么叫MATLAB,真矩阵实验室。程序如下,很简单,但对经常处理矩阵数据的小伙伴说不定有启发。
clear;
clc;
load('D:\CFOSAT_data\clc_a_b_rr.mat');
%区分垂直和水平极化(sigma_flag二进制第21位,垂直极化为1,水平为0)
clc_a_b_rr=clc_a_b_rr(~isnan(clc_a_b_rr(:,9)),:);%取非nan值
pol=bitget(clc_a_b_rr(:,9),21);%得到所有数据的sigma_flag的第21位值
pol_v=pol==1;%转为逻辑值
cf_r_v=clc_a_b_rr(pol_v,:);%逻辑判断
pol_h=pol==0;
cf_r_h=clc_a_b_rr(pol_h,:);


密码修改失败请联系微信:mofangbao

新浪微博达人勋

发表于 2020-6-5 23:36:15 | 显示全部楼层
学到了,感谢楼主
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

新浪微博达人勋

发表于 2020-6-6 21:43:00 | 显示全部楼层
用了for分分钟变python~
密码修改失败请联系微信:mofangbao
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

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