matlab,想添加函数tofloat,出现了这问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了matlab,想添加函数tofloat,出现了这问题相关的知识,希望对你有一定的参考价值。
程序:
function [out,reverclasss]=tofloat(in)
identity=@(x) x;
tosingle=@im2single;
table='uint8',tosingle,@im2uint8
'uint16',tosingle,@im2uint16
'int16',tosingle,@im2int16
'logical',tosingle,@logical
'double',identity,identity
'single',identity,identity;
classIndex=find(strcmp(class(in),table(:,1)));
if isempty(classIndex)
error('unsupported input immage class.');
end
out=tableclassIndex,2(in);
reverclass=tableclassIndex,3;
问题:??? Error: File: d:\工业中心408的matlab6p5full\tofloat.m Line: 2 Column: 11
"identifier" expected, "(" found.
代码有个小错,但不是你贴出来的这个。
function [out,reverclasss]=tofloat(in)其中的 reverclasss 应为 reverclass。
调用实例:
>> [out,reverclass] = tofloat(uint8(20))out =
0.0784
reverclass =
@im2uint8
如果在你的系统上出错,请截图并说明软件版本(在低版本例如6.5会出错,因不支持匿名函数)。
追问恩,是6.5版本的,是需要怎弄呢?是有替代函数吗?
追答把
identity=@ (x) x;改成
identity=inline('x');试试。
我现在电脑上没有6.5,无法测试是否还存在其它问题,暂时只能给你这样的建议,有问题再说。
追问无法定义,出现了
Error: File: d:\工业中心408的matlab6p5full\tofloat.m Line: 2 Column: 22
Missing operator, comma, or semicolon.
你是把我给的代码直接复制粘贴过去的吗?
不应该出现这样的问题的。
请贴出完整的报错信息,最好是由截图。
这样。。。
请您仔细看看,我给的代码是
identity=inline('x');而您图中的是
identity=inline('x') x;这能一样吗?就算要指定自变量,也应该是
identity=inline('x','x');另外,如果条件允许,建议最好换稍新一点的版本。6.5实在太老了,连我这么念旧的人都基本不用了。
追问好吧
参考技术A 检查一下括号是不是打成了中文的(),应该替换为英文()追问不是,有改过,但不行
MATLAB中用imfilter()对图像进行相关或卷积运算前一定要用tofloat()或im2double()将数据类型转换为浮点型
MATLAB中用imfilter()对图像进行相关或卷积运算前一定要用tofloat()将数据类型为float
为什么?
看一个实例的运行结果就知道了~
f = imread('F:\\material\\images\\P0020-Line-detection-01.tif');
w = [2 -1 -1;-1 2 -1;-1 -1 2];
g_tofloat = imfilter(tofloat(f),w); %也可用函数im2double()替代tofloat()
g_notofloat = imfilter(f,w);
上面程序的运行结果如下:
从上面两幅图中看出,如果不转换成float类型,则很有可能在运算中出现严重的数据截断问题,从而导致得不到正确的结果。
值得注意的是:目前的MATLAB中,比如 R2019a是没有函数tofloat()的,这里我给大家提供一个。
下载链接:https://pan.baidu.com/s/1R7UjDEQ9VAxaZYbbGIl2Og 提取码:hyh4
当然也可以用函数im2double()替代tofloat(),差别是im2double()是将数据类型转换为双精度浮点型,而tofloat()是将数据类型转换为单精度浮点型,双精度浮点型比单精度浮点型要更占内存空间些。
以上是关于matlab,想添加函数tofloat,出现了这问题的主要内容,如果未能解决你的问题,请参考以下文章