Functions inputs/outputs
Ältere Kommentare anzeigen
Hi i've been coding with matlab for a while now and i ran into a problem with passing inputs to function from main.
For example :
function [cellAr] = MathematicalFunction()
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
x = randi([-10,10] , 1,50);
y = randi([-10,10] , 1,50);
disp(x);
[xx,yy] = meshgrid(x,y);
z = sin(sqrt(xx.^2+yy.^2));
cellAr = {xx , 'x' , yy , 'y' , z , 'z'};
end
i wrote this code to make a meshgrid out of 2 random vectors and calculated a z axis.
For the next step i wanted to make another new function to plot the 3D graph. So i created a new void function that receives 2 inputs both are being sent from the main script and i was unable to send the cellAr and another input from the main script as new inputs to the 3D plot function to use and there were two problems that i couldn't solve :
1) "Too many output arguments". How can i have too many output arguments in a void function?
2)i was unable to send the newly generated cellAr and another string input to my Plot3 function through my main script.
my main looks like this :
clear clc
Array32 = MathematicalFunction();
ThreeDim = Plot3D(Array32,'surfc');
This isn't the first time i have a problem passing elements from main to another function so i must be doing something wrong.
3 Kommentare
Rik
am 8 Mär. 2021
You are using terminology from other programming languages. You should try to learn the Matlab terms, as that will help you find the solution on your own.
Your MathematicalFunction has 1 output, and you're asking for 1, so that is fine. Plot3D should accept at least 2 input arguments and 1 output argument.
If you have trouble with Matlab basics you may consider doing the Onramp tutorial (which is provided for free by Mathworks).
James Tursa
am 8 Mär. 2021
Please show us the code you wrote for the Plot3D( ) function.
itai zilcha
am 8 Mär. 2021
Bearbeitet: itai zilcha
am 10 Mär. 2021
Akzeptierte Antwort
Weitere Antworten (1)
Helene Cheung
am 16 Mär. 2021
And except as James Tursa mentioned, your input Array32(i) of surfc(Array32(1),Array32(3),Array32(5)) are cells.
You should change your type of inputs as follows,
surfc(Array32{1},Array32{3},Array32{5})
Array32(1) is a cell, but Array{1} will be a double array.
Kategorien
Mehr zu Logical finden Sie in Hilfe-Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!