Matlab:如何在没有稀疏数据结构的情况下从稀疏向量中获取值?

时间:2013-12-10 13:32:14

标签: matlab variable-assignment sparse-matrix

假设

>> hhh=sparse([],[],[],2^40,1);
>> hhh(7)=1;
>> a=hhh(7)

请注意,hhh(7)>01>0的计算时间差异很大。

  

如果没有稀疏数据结构,如何才能将hhh(7)的值仅提供给变量a

示例

  

输入:赋值与数字和稀疏数据结构错误。

a =

   (1,1)        1
     

目标:仅使用数字

进行分配
>> a=1

a =

     1

2 个答案:

答案 0 :(得分:2)

将表达式赋值给变量时,您将“继承”表达式的所有属性(如果可能)。要防止这种情况,您需要分配先前声明的对象的元素。例如:

a = 0;
a(1) = hhh(7);

现在你应该

>> a
a =
      1

答案 1 :(得分:2)

使用full转换部分矩阵(矩阵元素),例如要存储在 a 中的元素,添加到mat - 类型:

a = full(hhh(7))

请注意,这也适用于其他选择,例如

a = full(hhh(7:9))

输出将是

a =
     1
     0
     0