matlab 如何保留变量值

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab 如何保留变量值相关的知识,希望对你有一定的参考价值。

现有两个函数,分别叫kuandu和chineselisan。函数chineselisan经过计算得到一个EucDist值,函数kuandu调用函数chineselisan就可以得到多个EucDist值。
要求:如何保留函数kuandu调用函数chineselisan所得到的每一个EucDist值,请给出集体程序,谢谢!

  在使用matlab时,通常要将计算的结果保存到mat文件中。使用的命令是: save filename
  但是用上述命令保存的时候,会将计算过程中的其他变量一起保存了。这中粗糙的保存有以下缺点:
  (1)不需要的数据信息保存到mat文件中,导致mat文件过大;
  (2)下次load这个mat文件时,会显示出其他不需要的数据,占用系统内存。
  因此,在保存数据时,应保存有用的数据变量。
  处理方式:
  (1)先删除变量,再保存
  例如变量a,b,c,d,e,f,g,需要保留a,e,f的值,可以采用命令:clear b c d; 然后save filename
  【适用情况】冗余变量不多的情况,保存的变量较多。
  (2)保存时,指定保存的变量
  例如变量a,b,c,d,……几十几百个变量,需要保留a的值,可以采用命令:save filename a

  【适用情况】冗余变量非常多,保存的变量较少。
参考技术A 可能是因为函数kuandu调用函数chineselisan的时候,上次调用的结果都被下次调用的结果覆盖了。结果被存在同一个变量中了。我们只要将每一个函数chineselisan返回的结果存在数组中就可以了,例如:
i=1:n;
x(i)=chineselisan( 参数 );
或者直接将结果在命令窗口中输出来,即把‘ ;’去掉就可以了本回答被提问者采纳
参考技术B 因为函数是单调的,可以利用二分法来做,给定一个x的初始值,求出f(x),比较这个f(x)与已知f(x)数值的大小,
然后取x/2,再次求出f(x)并比较大小,这样就可以确定出已知f(x)的自变量x取值范围是在0-x/2还是在x/2-x之间,然后再取x/4或者3x/4,求取f(x)值与已知f值比较,知道达到你所要求的精度就可以结束了,这样这个x值实际上是无限的靠近真实解。
不知道看明白了没有。
参考技术C 用save filename var
将工作区变量var保存在filename.mat中
读取用load

以上是关于matlab 如何保留变量值的主要内容,如果未能解决你的问题,请参考以下文章

未保留目标 C 变量值

在并行运行 2 个或更多任务时保留变量值

保留变量值的空间

保留来自 dataReader c# 的 int 变量值

如何在js中设定变量值到小数点后两位?

请教MATLAB中如何输出一个函数的最大值对应的变量值