首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >用nan值在matlab中重新格式化矩阵

用nan值在matlab中重新格式化矩阵
EN

Stack Overflow用户
提问于 2012-10-26 02:42:07
回答 2查看 946关注 0票数 1

这一员额是在前一个关于调整矩阵表的问题之后提出的:

re-formatting a matrix in matlab

下面的例子说明了我面临的另一个问题:

代码语言:javascript
运行
AI代码解释
复制
depth = [0:1:20]';
data = rand(1,length(depth))';
d = [depth,data];
d = [d;d(1:20,:);d];

在这里,我想修改这个矩阵,这样每一列代表一个特定的深度,每一行代表时间,因此最终我将有3行(即天)和21列(即每个深度的度量)。然而,我们不能重塑这一点,因为某一天的测量数是不一样的,即有些是缺失的。这一点已为下列人士所知:

代码语言:javascript
运行
AI代码解释
复制
dd = sortrows(d,1);
for i = 1:length(depth);
    e(i) = length(dd(dd(:,1)==depth(i),:));
end

从“e”中我们发现,不同的日子,深度的数量是不同的。我如何在矩阵中插入一个nan,使每一天都有相同的深度值?首先,我可以找到独特的深度:

如果某一天缺少一个深度(来自唯一的),我想将深度插入到正确的位置,并将nan插入到数据列中的相应位置。如何才能做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-10-26 03:04:03

你刚才正确地认为unique可能会派上用场。您还需要第三个输出参数,它将唯一深度映射到原始d向量中的位置上。看看这段代码-注释解释我做了什么

代码语言:javascript
运行
AI代码解释
复制
% find unique depths and their mapping onto the d array
[depths, ~, j] = unique(d(:,1));

% find the start of every day of measurements
% the assumption here is that the depths for each day are in increasing order 
days_data = [1; diff(d(:,1))<0];

% count the number of days
ndays = sum(days_data);

% map every entry in d to the correct day
days_data = cumsum(days_data);

% construct the output array full of nans
dd = nan(numel(depths), ndays);

% assing the existing measurements using linear indices
% Where data does not exist, NaN will remain
dd(sub2ind(size(dd), j, days_data)) = d(:,2)

dd =

0.5115    0.5115    0.5115
0.8194    0.8194    0.8194
0.5803    0.5803    0.5803
0.9404    0.9404    0.9404
0.3269    0.3269    0.3269
0.8546    0.8546    0.8546
0.7854    0.7854    0.7854
0.8086    0.8086    0.8086
0.5485    0.5485    0.5485
0.0663    0.0663    0.0663
0.8422    0.8422    0.8422
0.7958    0.7958    0.7958
0.1347    0.1347    0.1347
0.8326    0.8326    0.8326
0.3549    0.3549    0.3549
0.9585    0.9585    0.9585
0.1125    0.1125    0.1125
0.8541    0.8541    0.8541
0.9872    0.9872    0.9872
0.2892    0.2892    0.2892
0.4692       NaN    0.4692

你可能想要转置矩阵。

票数 5
EN

Stack Overflow用户

发布于 2012-10-26 02:59:08

从你的问题中还不完全清楚你的数据到底是什么样子,但下面这些可能会帮助你找到答案。

假设你有一个列向量

day1 = 1:21';

而且,最初,所有的值都是NaN

day1(:) = NaN

接下来假设您有一个2d度量数组,其中第一列表示深度,第二列表示深度。例如

msrmnts = [1,2;2,3;4,5;6,7] % etc

然后分配

day1(msrmnts(:,1)) = msrmnts(:,2)

将只在day1的那些行中设置值,这些行的索引位于msrmnts的第一列中。第二个语句使用Matlab将一个数组用作另一个数组中的一组索引的功能,例如

d(9 7 8 12 4) = 1:5

将元素[9 7 8 12 4] of d设置为值1:5。注意,元素的索引不需要按顺序排列。您甚至可以在索引数组中多次插入相同的值,例如[4 4 5 6 3 4],尽管它并不十分有用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13085382

复制
相关文章
object.finalize_object的equals方法
finalize()是Object的protected方法,子类可以覆盖该方法以实现资源清理工作,GC在回收对象之前调用该方法。
全栈程序员站长
2022/10/02
6850
object.finalize_object的equals方法
前端基础-HTML(object标签)
object标签 <object type="application/x-shockwave-flash" data="line.swf" width="500" height="500"></obj
cwl_java
2020/04/07
5410
前端基础-HTML(object标签)
java object toarray,Object[] toArray()
java.util.LinkedList.toArray()方法以适当的顺序(从第一个元素到最后一个元素)返回包含此列表中所有元素的数组。此方法充当基于数组的API和基于集合的API之间的桥梁。
全栈程序员站长
2022/08/28
6610
Object类常用方法
方法签名:public String toString() ① 默认情况下,toString()返回的是“对象的运行时类型 对象的hashCode值(16进制)" ② 在进行String与其它类型数据的连接操作时,自动调用toString()方法
CODER-V
2023/03/04
3550
Object 有啥方法
这个 Object 指的是所有对象的父亲 package java.lang; 下的 object 类
韩旭051
2021/04/14
5870
Object 有啥方法
Java Map的containsKey(Object key)和containsValue(Object value)方法
public void testContainsKeyOrValue(){ Scanner sc = new Scanner(System.in); //Key System.out.println("请输入要查询的学生id:"); String id = sc.next(); System.out.println("你输入的学生id为:"+id+",在学生映射表中是否存在"+ students.con
JavaEdge
2018/05/16
2.1K0
js Object seal方法
接受一个对象作为参数,并返回相同的对象。作为参数传递的对象发生了变化,它现在是一个不接受新属性的对象。不能添加新属性,也不能删除现有属性,但可以更改现有属性。
IT工作者
2022/01/05
3.5K0
Object对象
Object对象是JavaScript中两个顶层对象之一,提供方法供直接调用以及原型链继承调用。
WindRunnerMax
2020/08/27
2.3K0
如何重写object虚方法
在 C# 中 Object 是所有类的基类,所有的结构和类都直接或间接的派生自它。前面这段话可以说所有的 C# 开发人员都知道,但是我相信其中有一部分程序员并不清楚甚至不知道我们常用的 ToString 、 Equals 和 GetHashCode 虚方法都来自于 Object 类,并且我们可以对它们进行重写。重写这三个虚方法可以说在项目开发中经常用到,只不过大部分开发人员并未留意这三个虚方法可以重写,而是自己写方法来实现。 下面我就来具体讲解一下它们三个应该怎么重写。在这里我需要说明的是本篇文章会大量涉及到设计规范和设计要求,代码只是作为辅助理解的形式出现,因此文章中的所有代码将会以代码段的形式出现。
喵叔
2020/09/08
8250
Object.keys和Object.values
使用Object.keys()或者Object.values()获取循环变量,渲染的时候根据循环变量获取值。Object.keys()函数返回索引(不仅仅是数字),Object.values()函数返回值。
从入门到进错门
2018/08/21
5500
"reason":"object mapping for [] tried to parse field [] as object, but found a concrete value"
enclosure_infor这个字段的mapping如下,是个nested类型的:
IT云清
2019/01/22
6.6K0
Java Object 类方法解析
我们都知道 Java 语言是面向对象的编程语言,而面向对象编程以类作为基本单元。我们也都知道,在 Java 中,所有的类都将 Object 类作为父类,而 Object 类本身提供了一些基础但是很有用的方法,这些方法我们在日常工作中经常会用到,因此熟悉它们的原理和用法对我们的开发会有很大的帮助,下面我们来一起看一些这些方法:
指点
2019/01/18
6660
Java Object 类方法解析
面试:Object 方法与原理
clone 方法的用法是对象的浅拷贝和深拷贝,clone是浅拷贝是对基本类型的值传递,对引用类型进行引用类型般的拷贝。深拷贝并拷贝对象的所有属性,并拷贝属性所指向的动态分配内存。实现深拷贝的方法有:1. 重写clone方法,对其内部的引用类型再进行clone. 2.通过序列化实现深拷贝,将拷贝的对象写入内存的字节流中,然后在读出转换为对象。新对象和原对象不存在地址的共享,所以实现深拷贝。3. 可以采用反射来实现深拷贝,迭代的依次拿到字段,并给新对象赋值。
Tim在路上
2020/08/04
3490
Object类
String toString() 返回该对象的字符串表示 返回该对象的字符串表示
默默的成长
2022/11/07
5720
Object类
Object划分
这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这
后端码匠
2021/02/18
7070
Object 有哪些常用方法
Object 是所有类的父类,任何类都默认继承 Object。Object 类到底实现了哪些方法?
Li_XiaoJin
2022/06/10
8030
Object类有哪些方法?
类 Object 是类层次结构的根类。每个类都使用 Object 作为超类。所有对象(包括数组)都实现这个类的方法。
黑洞代码
2021/01/14
1.4K0
Object类有哪些方法?
LINQ to Object
LinQ to Object是指对随意IEnumerable或Ienumerable<T>集合使用linq查询.它可取代查询不论什么可枚举的集合.如List<T>,Array或Dictionary<K,V>.
全栈程序员站长
2022/07/13
1.3K0
LINQ to Object
TypeError: object()
对于上面这个错误,很容易迷惑我们,因为这个错误信息没有很明确的指出,到底是哪段代码除了问题。那这个错误是怎么产生的了,请听我细细道来。
py3study
2020/01/06
1.1K0
点击加载更多

相似问题

bootstrap:未捕获TypeError: Object [object Object]没有方法'tooltip','typeahead‘

40

TypeError: Object [ object ],[object Object]没有方法查找

30

jQuery/ #<Object>:Uncaught #<Object>:Object #<Object>没有“悬停”方法

12

Ajaxui标签:未捕获TypeError: Object [object Object]没有方法' tabs‘

23

Object [Object array]或[Object object]没有方法'then‘

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档