林坰 2022-10-17 01:05 采纳率: 0%
浏览 49

MATLAB2018a 提示未定义函数或变量

问题遇到的现象和发生背景

MATLAB2018a 提示未定义函数或变量cloud_transform
2021a版本则无此错误

用代码块功能插入代码,请勿粘贴截图
% 以下是主函数cloud_main.m
clc;
clear all;
% 每幅图生成N个云滴
N = 1500;
% 射击成绩原始数据,这里数据按列存储所以要转置
Y = [9.5 10.3 10.1 8.1 
10.3 9.7 10.4 10.1 
10.6 8.6 9.2 10.0 
10.5 10.4 10.1 10.1 
10.9 9.8 10.0 10.1 
10.6 9.8 9.7 10.0 
10.4 10.5 10.6 10.3 
10.1 10.2 10.8 8.4 
9.3 10.2 9.6 10.0 
10.5 10.0 10.7 9.9]';

%每一组数据生成一组云滴
for i=1:size(Y,1)
    %函数subplot是将多个图画到一个平面上的工具。
    subplot(size(Y,1)/2,2,i);
    [x,y,Ex,En,He]=cloud_transform(Y(i,:),N);
    %将在第i副图上绘图
    plot(x,y,'r.');
    %为坐标轴命名
    xlabel('射击成绩分布/环');
    ylabel('确定度');
    %为第i副图设置标题  num2str函数的功能是:把数值转换成字符串
    title(strcat('第',num2str(i),'人射击云模型还原图谱'));
    %axis( [xmin xmax ymin ymax] ) 设置当前坐标轴 x轴 和 y轴的限制范围
    axis([8,12,0,1]);
end

以下是函数f2.m
%根据原始数据y_spor和需要的云滴个数n
%返回n个云滴,x代表n个云滴的数据值,y代表n个云滴的确定度
%Ex En He 分布代表原始数据的 期望 熵 超熵

function [x,y,Ex,En,He] = cloud_transform(y_spor,n)
%mean函数作用:求得矩阵的平均值(期望)
Ex=mean(y_spor);
%熵的求法:sum(abs(y_spor-Ex)).*sqrt(pi/2)
En=mean(sqrt(pi/2).*abs(y_spor-Ex));
%超熵的求法:sqrt(S.^2-En.^2) var函数作用:求得矩阵方差S^2
He=sqrt(var(y_spor)-En.^2);
for i=1:n
    %生成以En为期望 以He^2为方差的正态随机数Enn
    %randn(m)生成m行m列的标准正态分布的随机数或矩阵的函数
    Enn=En+randn(1).*He;
    %生成以Ex为期望,以Enn^2为方差的正态随机数x
    x(i)=Ex+randn(1)*Enn;
    %计算隶属度(确定度)
    y(i)=exp(-(x(i)-Ex).^2/(2*Enn.^2));
end
end



运行结果及报错内容

img

我想要达到的结果

使代码正确运行

  • 写回答

1条回答 默认 最新

  • Power_honey 2022-10-17 10:13
    关注

    cloud_transform()这个函数你都没写,所以导致主程序运行的时候调用不了,出错了。

    评论

报告相同问题?

问题事件

  • 创建了问题 10月17日

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失