WICHTIG: Der Betrieb von goMatlab.de wird privat finanziert fortgesetzt. - Mehr Infos...

Mein MATLAB Forum - goMatlab.de

Mein MATLAB Forum

 
Gast > Registrieren       Autologin?   

Partner:




Forum
      Option
[Erweitert]
  • Diese Seite per Mail weiterempfehlen
     


Gehe zu:  
Neues Thema eröffnen Neue Antwort erstellen

Slice eines Temperaturvektors nach t Darstellen, Feintuning.

 

the_Hu
Forum-Newbie

Forum-Newbie


Beiträge: 1
Anmeldedatum: 01.06.16
Wohnort: ---
Version: ---
     Beitrag Verfasst am: 01.06.2016, 13:51     Titel: Slice eines Temperaturvektors nach t Darstellen, Feintuning.
  Antworten mit Zitat      
Sehr geehrte Forum User,


lange war ich nur ein stiller Mitleser, jetzt isses soweit:

Ich habe nach derm Lösen einer DGL die Vektoren t der Zeit und th der Temperatur.

t spalte, th Anzahl der Elemente (Nx*Ny*Nz).

Ich möchte den Würfel gerne 1 zu 1 darstellen. Ich berechne diskretisierte Elemente mit definierte Länge und Volumen. Slice stellt mir das jedoch nur als Knoten dar. Sprich bei 3x3x3 Elementen, sind es insgesamt 27 Elemente, es wird jedoch blos ein 2x2x2 Würfel dargestellt.

Auch sind die Flächen nicht die Richtigen So färben sich Randflächen auf der YZ und XZ Fläche ein, die sich nicht einfärben sollen, hierbei handelt es sich immer um die Grenzkanten innerhalb der Darstellung. An den Werten des Vektors kann es nicht liegen, in anderen Darstellung ergibt es Sinn.


Im Code habe ich für die Ansicht, das Netz mit Meschrid entworfen, auch habe ich dieses Meshgrid zu Sicherheit selber nachgeschrieben, was jedoch keine Verbesserung brachte.

Ach habe ich danach Probleme mit dem einfanger der Frames für den Movie mit getframe. Der Fehler besagt, dass irgend etwas in falschen Dimension sei, auch hier ist mir die Fehlermeldung schleierhaft.

Ich habe mich ausführlich durch das Forum gewühlt und die Matlab Hilfe, meiner Lösung kam ich jedoch nicht näher. Ich würde mich freuen, wenn einer von euch mitmachen würden =)

Code:

if CB.Slice == 1
    fprintf('\n     Preparing the Movie Plot of the Cube Slice \n');    
    th_3d = zeros (N.nz,N.nx,N.ny);
   
       
            figure;
%         to_vid = VideoWriter('cube_mov.avi');
%         open(to_vid);
   
    for vid=2 :1: size(th,1)

 
       
    for j = 1 :1: N.nz
        for k = 1 :1: N.ny
            for l = 1 :1: N.nx
                    th_3d(j,l,k) = th(vid,N.ny*N.nx*(j-1)+N.nx*(k-1)+l);
            end
        end
    end

    x_vec = (1:1:N.nx);
    y_vec = (1:1:N.ny);
    z_vec = (1:1:N.nz);

    [x,z,y] = meshgrid(x_vec,z_vec,y_vec);

    % Swap matrices in order to avoid code changes (plot)
    temp = z;
    z = y;
    y = temp;

    % Define axis and function value matrices (example)
   
    % Get limits in all directions
    xmin = min(x( : ));
    ymin = min(y( : ));
    zmin = min(z( : ));
    xmax = max(x( : ));
    ymax = max(y( : ));
    zmax = max(z( : ));


    % Define middle surface (rotatable)
%     figure;
%     hslice = surf(linspace(xmin,xmax,100),...
%                   linspace(ymin,ymax,100),...
%                   zeros(100));
%     rotate(hslice,[-1,0,0],0)
%     xd = get(hslice,'XData');
%     yd = get(hslice,'YData');
%     zd = get(hslice,'ZData');
%
%     delete(hslice)
%     close(gcf);

    %%

    % Open figure and set parameters
%     figure;
    hold on

    movegui('northwest');
    colormap(jet);
    colorbar;
    view (-36, 36);
    axis equal;

    % Set axis denominations
    xlabel('x-axis');
    ylabel('z-axis');
    zlabel('y-axis');

    % Title
    title('Inner Heat Transfer - Cube','FontSize',12,'FontWeight','bold');

    % Plot back surface
    slice(x,y,z,th_3d,xmax,[],[]);
    % Plot front surface
    slice(x,y,z,th_3d,xmin,[],[]);
    % Plot left surface
    slice(x,y,z,th_3d,[],ymax,[]);
    % Plot right surface
    slice(x,y,z,th_3d,[],ymin,[]);
    % Plot upper surface
    slice(x,y,z,th_3d,[],[],zmax);
    % Plot lower surface
    slice(x,y,z,th_3d,[],[],zmin);

    % Define colors
%     FF(vid-1) = getframe;
%     writeVideo(to_vid,FF(vid-1));
    drawnow;

   
    end
    hold off;    
%     close(to_vid);
% end


[EDITED, Jan, Bitte Code-Umgebung verwenden - Danke!]

time_vec.mat
 Beschreibung:
Teitvektor

Download
 Dateiname:  time_vec.mat
 Dateigröße:  817 Bytes
 Heruntergeladen:  285 mal
heat_vec.mat
 Beschreibung:
Nx, Ny, Nz = 3
Das Mittlere Element hat keine Ausßenflächen

Download
 Dateiname:  heat_vec.mat
 Dateigröße:  13.66 KB
 Heruntergeladen:  285 mal
ForumFrage2.fig
 Beschreibung:
ja, so sieht dann aus

Download
 Dateiname:  ForumFrage2.fig
 Dateigröße:  51.42 KB
 Heruntergeladen:  273 mal
matlabForumFrage1.fig
 Beschreibung:

Download
 Dateiname:  matlabForumFrage1.fig
 Dateigröße:  162.31 KB
 Heruntergeladen:  290 mal

_________________

----
Jede Frage tut mir, Leid, das meiste gibts in der MatLab Hilfe. Wenn ich was Frage und die Antwort gut ist, muss man ein Bier trinken! -> Nur so kann man Danke sagen, und deshalb Frag ich nicht oft.
Private Nachricht senden Benutzer-Profile anzeigen


Neues Thema eröffnen Neue Antwort erstellen



Einstellungen und Berechtigungen
Beiträge der letzten Zeit anzeigen:

Du kannst Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum posten
Du kannst Dateien in diesem Forum herunterladen
.





 Impressum  | Nutzungsbedingungen  | Datenschutz | FAQ | goMatlab RSS Button RSS

Hosted by:


Copyright © 2007 - 2025 goMatlab.de | Dies ist keine offizielle Website der Firma The Mathworks

MATLAB, Simulink, Stateflow, Handle Graphics, Real-Time Workshop, SimBiology, SimHydraulics, SimEvents, and xPC TargetBox are registered trademarks and The MathWorks, the L-shaped membrane logo, and Embedded MATLAB are trademarks of The MathWorks, Inc.