我是MATLAB的新手,我有一个运行另一个代码的代码抛出一个函数。 这是第一个运行第二个代码的代码:
function D=DataT3DSVFAE
%m number of elements
%n number of nodes
m=94;
n=38;
%coordinates of nodes [(X Y Z) for each node]
Coord=[-299.1 200 1875; 25.8 200 1875;
425.8 200 1875; 425.8 -200 1875;
25.8 -200 1875; -299.1 -200 1875;
-327.9 251.7 1450; 25.8 251.7 1450;
425.8 251.7 1450; 425.8 -251.7 1450;
25.8 -251.7 1450; -327.9 -251.7 1450;
-356.6 303.4 1025; 25.8 303.4 1025;
425.8 303.4 1025; 425.8 -303.4 1025;
25.8 -303.4 1025; -356.6 -303.4 1025;
-390.4 364.2 525; 25.8 364.2 525;
425.8 364.2 525; 425.8 0 525;
425.8 -364.2 525; 25.8 -364.2 525;
-390.4 -364.2 525; -390.4 0 525;
-425.8 423.9 25; 25.8 423.9 25;
425.8 423.9 25; 425.8 0 25;
425.8 -423.9 25; 25.8 -423.9 25;
-425.8 -423.9 25; -425.8 0 25;
-425.8 423.9 0; 425.8 423.9 0;
425.8 -423.9 0; -425.8 -423.9 0];
%conection of the nodes [first in coordinates is the first node and ...]
Con=[1 2; 2 3; 4 5; 5 6; 3 4; 1 6; 2 5; 1 12; 6 7; 3 10; 4 9; 1 8; 2 8; 3
8;6 11; 5 11; 4 11; 1 7; 3 9; 4 10; 6 12; 7 8; 8 9; 10 11; 11 12; 7 12;...
9 10; 8 11; 8 10; 7 18; 12 13; 9 16; 10 15; 8 13; 8 15; 10 17; 12 17; 7
13;9 15; 10 16; 12 18; 13 14; 14 15; 16 17; 17 18; 15 16; 13 18; 14 17; 14
16;13 26; 18 26; 15 22; 16 22; 13 20; 14 20; 15 20; 16 24; 17 24; 18 24; 13
19;15 21; 16 23; 18 25; 19 20; 20 21; 23 24; 24 25; 21 22; 22 23;...
19 26; 25 26; 22 24; 20 26; 20 24; 26 27; 26 33; 26 34; 22 30; 22 29;...
22 31; 20 29; 20 27; 20 28; 24 32; 24 31; 24 33; 19 27; 21 29; 23 31;...
25 33; 27 35; 29 36; 31 37; 33];
% Create storage for Q, V and R
allQ = cell(2,1);
allV = cell(2,1);
allR = cell(2,1);
% Load has only a Fx and all other forces and moments are zero
% uniform loads in local coordinate system
w=zeros(m,3);
% E: material elastic modules G:shear elastic modules J:torsional constant
E=ones(1,m)*1e4;nu=0.3;G=E/(2*(1+nu));
% A:cross sectional area and Iy Iz: moment of inertia
A=ones(1,m)*0.5;Iz=ones(1,m);Iy=ones(1,m);J=ones(1,m);
%St: settlement of supports & displacements of free nodes
St=zeros(n,6); be=zeros(1,m);
% All of the variables are transposed and stored in a structure array in
the
%name of D
D=struct('m',m,'n',n,'Coord',Coord','Con',Con','Re',Re',...
'Load',Load','w',w','E',E','G',G','A',A','Iz',Iz','Iy',...
Iy','J',J','St',St','be',be');
[allQ{t},allV{t},allR{t}]=MSA(D); % Save the results
此代码以MSA(D)的名称运行另一个代码作为函数。
问题是我可以在工作区或文件或任何变量中输出。它们只出现在我的命令窗口内,我无法将它们用于我的进一步开发。 我需要在文件或工作中使用这些变量:
allQ = cell2mat(allQ)
allV = cell2mat(allV)
allR = cell2mat(allR)
任何有用的帮助:)
答案 0 :(得分:0)
默认情况下,如果变量是函数的输出,变量将仅出现在工作空间中,无论是从主脚本运行函数还是直接从命令窗口运行。我在命令窗口中运行了你的函数而没有以下行:
[allQ{t},allV{t},allR{t}]=MSA(D); % Save the results for Q, V and R
结构D
出现在工作区中。然后我输入D.m
,D.n
等来访问结构的其他部分。这是一张图片:
希望这会有所帮助..
答案 1 :(得分:0)
如果你想在将来保存的MATLAB中有一些变量,有两种方法可以做到这一点:
save('workspace1.mat') % Will save all variables
save('workspace2.mat',X,Y,Z) % Will save the variables X, Y, Z
如果您想再次在工作区中加载它们:
load('workspace1.mat') % Loads the saved variables
对于更复杂的事情,我建议您查看文档(link)
答案 2 :(得分:0)
感谢大家的帮助; 但我自己找到了答案。
我为任何在保存变量方面遇到问题的人写它! 问题是: 变量只是在matlab的命令窗口内访问,它们不在工作区内!因此,为了保存任何工作空间内的任何变量,可以使用 assignin 功能! 进一步帮助你检查matlab帮助中的assignin功能:)玩得开心!