Matlab no define la función 'princomp' correspondiente a los parámetros de entrada de tipo 'XXX'

Hoy, un compañero de clase me pidió que lo ayudara a ver qué salió mal con el código de matlab. Primero ejecute el código, aparece el primer problema:

Esta función GetSal es una función personalizada fuera del archivo. Cuando vea que el directorio en ejecución actual y el directorio donde se encuentra la función no están en el mismo directorio, agregue addpath (el directorio donde se encuentra la función personalizada) en el código .

Después de agregar esta línea de código, el segundo problema aparece después de volver a ejecutar:

No hay función princomp. La primera reacción es la misma que la primera pregunta. Como resultado, la función no se encuentra en la carpeta de código. Luego hay dos posibilidades. La primera es que el autor no la encontró, y la segunda es una función del sistema. Pero la búsqueda de ayuda princomp en el cuadro de comando no tiene resultados:

 

Pero parece que printcomp y princomp no son lo mismo. Luego fui a Baidu esta función, y puedo encontrar varios blogs sobre qué usar esto, pero la fecha de publicación del blog es hace 14 años, suponiendo que la función puede ser eliminada. en la versión 2015. (Usé 2019 y alguien hizo esta pregunta en el foro csdn en 2015), solo busque el código o las alternativas para esta función en Internet.

Después de buscar durante mucho tiempo, parece que no encontré un código para esta función, pero Baidu sabe ( https://zhidao.baidu.com/question/1861253164912406107.html ) que proporciona el siguiente conocimiento:

Es decir, es muy posible que la función del sistema pca reemplace a princomp, y la entrada y salida de estas dos funciones sean similares (una pca más), entonces siempre que princomp sea reemplazado por pca en el código que llama a princomp, se puede resolver, pero es necesario obtener Add ~ al resultado, es decir, [coeff, score, tsquared, ~] = pca (...).

Pero el enraizamiento y el rastreo encontraron que fue llamado por un archivo .p. Debido a que el archivo .p es un archivo .m encriptado que está encapsulado y no se puede abrir normalmente, pensé en una forma de llamar a pca a través de la función de autoedición princomp , y luego autoeditar esto La función se puede colocar en el mismo directorio que el .p que lo llama:

function [COEFF,SCORE,latent,tsquare] = princomp(X)
    [COEFF,SCORE,latent,tsquare,~]= pca(X);
end

 

Supongo que te gusta

Origin blog.csdn.net/qq_36614557/article/details/109585211
Recomendado
Clasificación