matlab变量初始化方法,为什么MATLAB报告我的变量未初始化?(Why is MATLAB reporting my variable uninitialized?)...

在MATLAB编程中,遇到变量未初始化的错误通常是由于在函数内部错误地使用了与函数同名的变量。错误示例中,函数`kamran`与变量`kamran`冲突导致问题。即使更改函数名,MATLAB依然报错,因为代码中使用了`:`, 导致MATLAB可能将其解析为数组操作,而非函数调用。解决方案是确保正确调用函数,避免使用可能导致混淆的符号。" 98988748,7376343,量化BN:计算复杂度分析,"['深度学习', '神经网络', '计算效率', '卷积层', '量化']
摘要由CSDN通过智能技术生成

为什么MATLAB报告我的变量未初始化?(Why is MATLAB reporting my variable uninitialized?)

我做了一个课程,在其中一个方法中,我需要计算两点之间的距离。 所以我写了一个名为“remoteness”的普通函数来为我做这个。

编译错误:

在编译时,“远程”被确定为变量,并且该变量未初始化。 “remoteness”也是一个函数名,MATLAB的早期版本将调用该函数。

但是,MATLAB 7禁止在与函数和变量相同的上下文中使用相同的名称。

错误在==> TRobot> TRobot.makeVisibilityGraph at 58 obj.visiblityGraph(k,k + 1)= remoteness(:,obj.VGVertices(k),obj.VGVertices(:,k + 1));

我认为remoteness名称可能是另一个函数的名称,但当我将其名称更改为kamran ,错误仍然存​​在。 应该注意,我可以在命令行中使用kamran函数(或remoteness ),没有任何问题。

命令行示例:

>> kamran([0,0],[3,4])

ans = 5

kamran函数的代码位于单独的m文件中。

kamran功能代码:

function dist = kamran(v1,v2)

dist = sqrt( (v1(1) - v2(1)) ^2 + (v1(2) - v2(2)) ^2 );

有关如何使用kamran函数的代码示例:

function obj = makeVisibilityGraph(obj)

verticesNumber = 0;

for num = 1: size(obj.staticObstacle,2)

verticesNumber = verticesNumber + size(obj.staticObstacle(num).polygon,2);

end

% in the below line, 2 is for start and goal vertices

obj.visibilityGraph = ones(2 + size(obj.VGVertices,2)) * Inf;

for j=1 : size(obj.staticObstacle,2)

index = size(obj.VGVertices,2);

obj.VGVertices = [obj.VGVertices, obj.staticObstacle(j).polygon];

obj.labelVGVertices = [obj.labelVGVertices, ones(1,size(obj.staticObstacle(j).polygon,2))* j ];

for k = index+1 : (size(obj.VGVertices,2)-1)

obj.visiblityGraph(k,k+1) &

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在MATLAB中,当使用初始化变量时,可能会出现潜在的问题。根据引用\[1\],当使用初始化的外部变量时,程序不会报错,而是输出了默认值0。这是因为在MATLAB中,外部变量的默认初始化值为0。然而,当使用初始化的内部变量时,编程往往会提示错误。这是因为在MATLAB中,内部变量需要在使用之前进行初始化。如果初始化内部变量MATLAB会认为它是一个定义的变量,并会提示错误信息。引用\[2\]和引用\[3\]提供了一些关于MATLAB初始化变量的具体情况的例子。因此,在编写MATLAB代码时,我们应该始终确保变量在使用之前被正确初始化,以避免潜在的错误。 #### 引用[.reference_title] - *1* [c++变量初始化(避免使用初始化变量)](https://blog.csdn.net/qq_74574219/article/details/128129953)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [为什么MATLAB报告我的变量初始化?(Why is MATLAB reporting my variable uninitialized?)](https://blog.csdn.net/weixin_35952000/article/details/115827870)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值