matlab基础问题请教

找出数据中哪一行含有小于-50的值,并把该行的前三行进行平均,平均后的值在进行差值计算
#matlab

这种就写循环吧

a=你的数据名
然后

[m,~]=size(a); %先检测你的数据有多少行

%然后循环依次检测
%先写一个计数的j值
j=0
%开始对一共有m行的数据a的每行进行检测
for i=1:m
    line=a(i,:); %把这一行提出来
    ak=~isempty(find(line<-50));%分析有没有小于-50的值,构造指示变量ak
    %即如果line里有小于-50的,那么find(line<-50)就有值,ak就是1。没有小于-50的,那么find(line<-50)就有值,那么ak就是0
    %写if函数,对行进行不同处理
                  if ak==1  %如果这行有小于-50的,ak=1了
                       j=j+1  %则j增加1计数
                       hangno(j)=i;   %hangno储存有<-50值的行号,在第j行里储存这一轮的行号i
                       hang(j,:)=line;   %hang储存这一行的内容,在第j行里储存这一轮分析的行line——这里更改了一下
                   else  %如果没有小于-50的
                       continue  %就什么也不做跳过这一行
                    end
end

%写完这个循环后,找出数据中哪一行含有小于-50的值可以看hangno这个变量
%“并把该行的前三行进行平均,平均后的值在进行差值计算”这个没看懂,不过符合要求的行已经储存在hang这个变量里了,你可以看看怎么进一步处理

问题不明确,大概思路

找出小于-50的元素所在的行:
[row, ~] = find(data < -50);
平均
avg = mean(data(row(1:3), :), 1);
差值计算
diff = diff(avg);

  • 这个问题的回答你可以参考下: https://ask.csdn.net/questions/376952
  • 我还给你找了一篇非常好的博客,你可以看看是否有帮助,链接:MATLAB遇到问题:绘图窗口显示中文乱码方框的解决方法
  • 除此之外, 这篇博客: matlab图形 代码控制和手动编辑坐标轴属性,探索出好多厉害的小技巧!中的 手动编辑 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
  • 画好图,点击左上角第二个“编辑”,“坐标轴属性”

    直接全选可以选到所有的边框,可以同时修改更好看的颜色,我比较喜欢浅灰色的边框比黑色好看
    在这里插入图片描述

    选中一条线后按住shift可以同时多选很多其他线条或者边框,同时修改颜色,不需要一个一个的来

    可以选择图形类型
    区域图
    线形图
    阶梯图
    线宽
    任何在程序中不好设置的比如颜色(代码可控颜色较少),图的类型(区域图)··都可以编辑
    坐标轴是否加框等
    matlab画出的图形的所有的东西都是可以直接编辑的

    可以画好一个初稿,然后在这边手动编辑设计配色,改变标记的形状颜色,很省时间很方便

    在这里插入图片描述
    任何文本都可以双击改写,文字的解释器是tex,公式则是latex

    可以在图上面右击, 显示图例,然后自己改为格式的描述

    在这里插入图片描述

    还可以自己手动设置刻度,显示小刻度挺好看的

    在这里插入图片描述在这里插入图片描述
    反向挺好玩的,包都变成了坑,不过用的不多,只有适合的时候才用
    在这里插入图片描述在这里插入图片描述

    colorbar设置

    选中colorbar,点击右下角的更多属性(左边那个只能调整色条的位置),可以设置刻度,去掉边框等等
    在这里插入图片描述

    在这里插入图片描述

    去掉SelectionHighlight 和Box勾选可以去除处理右边刻度以外的边框

    可以反向colorbar哦,和自己的颜色变化对应起来
    在这里插入图片描述