Functions inputs/outputs
显示 更早的评论
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 个评论
Rik
2021-3-8
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
2021-3-8
Please show us the code you wrote for the Plot3D( ) function.
itai zilcha
2021-3-8
编辑:itai zilcha
2021-3-10
采纳的回答
更多回答(1 个)
Helene Cheung
2021-3-16
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.
类别
在 帮助中心 和 File Exchange 中查找有关 Logical 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!