【发布时间】:2012-01-25 21:07:58
【问题描述】:
我希望 matlab 中的变量仅存储(不要与显示混淆)最多 4 位小数。 它有内置命令吗? 我尝试了以下方法 - 但这给出了错误:
a = [5.21365458 5.236985475 1.236598547 9.3265874];
k=1;
for i=1:length(a)
ast(k)=sprintf('%5.4f',a(i));
anum(k)=str2num(ast(k));
k=k+1;
end
错误是:???下标赋值维度不匹配。
【问题讨论】:
-
“我希望 matlab 中的变量仅存储(不要与显示混淆)最多 4 位小数”。当您可以以全精度存储值并将它们显示至小数点后四位时,您是否有意降低精度?即使四舍五入到小数点后四位,您仍然可以完全精确地存储这些值。
-
我只需要最多 4 个小数位就可以将这些值与一组其他值相等,并选择一个匹配到最多 4 个小数位的值。完全精确,我永远无法匹配两组数字。
-
然后你应该以全精度存储数字,并编写一个函数来测试最多 4 个小数位的相等性。事实上,您应该做的是告诉我们您真正想要做什么(即测试相等性达到某种程度的精度)而不是您认为您需要做什么(即搞乱您的数据是如何存储的)。
-
我有两条曲线:C1 = f1(x1,y) 和 C2 = f2(x2,y) 。即它们共享相同的 y 值。我需要找出 'x' 值对于哪个 'y' 值最接近。
-
条件 $|a-b|
标签: matlab