how to solve the probelm that an input variable will be cleared in a loop in the definition of a matlab function?

2 visualizaciones (últimos 30 días)
Hi,
I'm a novice in matlab.
I encounterd two problems while trying to define a function.
First, the input variable that is a single number cannot be recognised as numeric in the function statements.
Second, I don't know why the input variable will be cleared in a loop...like the below loop...in this settings, I tried to define a function that looks like [output1 output2]=function(*****,A,****). However, while calling this function, it will report error that "reference to a cleared variable A" in the second iteration for the loop (marked by red circle)...
Wish somebody could help me to solve these two confusing problems!
  7 comentarios
Yovan Ho
Yovan Ho el 18 de Feb. de 2020
Besides, I want to set Num_ROIs and partitionTimes as the input variables of this function, but I don't know why the code like
"Smatrix_output=zeros(Num_ROIs,length(A),partitionTimes,Num_omega,Num_gamma);"
cannot recognise these two variables as numeric when I called this function to run (I had assigned intergers to them ).

Iniciar sesión para comentar.

Respuesta aceptada

Steven Lord
Steven Lord el 18 de Feb. de 2020
In general, you shouldn't need to call clear in a function. In those situations where you must, strongly prefer calling clearvars (or clear with the name of a variable as input) to clear a specific variable rather than calling clear with no input arguments which clears everything.
In this case, delete the call to clear with no inputs in your code. Examine your two calls to clear with an input argument to determine if they are truly necessary.
  4 comentarios
Yovan Ho
Yovan Ho el 18 de Feb. de 2020
Sorry, I didn't realize the code I attached in the comment above cannot be viewed.
I have attached them in this message.
It will report errors about the aforementioned zeros function once I run the script (dFC.m) which calls the function multilayerNetFunc.
Variables Num_ROIs & partitionTimes are set as part of the input variables of multilayerNetFunc.
I am grateful for your patience to help me check the problems!
Yovan Ho
Yovan Ho el 19 de Feb. de 2020
Hi
I have found the source of the problem. I didn't type the right characters to call the multilayerNetFunc function so that I encountered that problem. I should pay more attention to the details of writing codes.
Thank you for the help!

Iniciar sesión para comentar.

Más respuestas (0)

Categorías

Más información sobre Loops and Conditional Statements en Help Center y File Exchange.

Etiquetas

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by