回答
我就遇到了這個問題我自己,當我寫我的新HPF類。所以我嘗試了一些東西,因爲當我正在調試新課程時,我做了許多修改,然後測試。
「清除功能」不起作用。我甚至嘗試過「清除hpf」。但清除所有實例似乎是這樣做的。例如:
>> x = hpf(3);
>> x+2
ans =
5
>> whos
Name Size Bytes Class Attributes
ans 1x1 248 hpf
x 1x1 248 hpf
y 1x1 8 double
所以現在我對班級做了一個小小的修改並保存了下來。
>> z = hpf(17);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
>> clear functions
>> clear hpf
>> clear x
>> clear z
>> x = hpf(3);
Warning: The class file for 'hpf' has been changed; but the change cannot be applied because objects based on the old class file still exist. If you use
those objects, you might get unexpected results. You can use the 'clear' command to remove those objects. See 'help clear' for information on how to remove
those objects.
所以我仍然得到一個警告,告訴我MATLAB仍然有問題。但是,我仍然在內存中有一個很容易被遺忘的HPF實例。
>> clear ans
>> clear x
>> whos
Name Size Bytes Class Attributes
y 1x1 8 double
>> x = hpf(3);
>> x+23
ans =
26
只要我也刪除那個實例,MATLAB不再給我一個警告。請注意,我從來不必發出「清除類」命令。變量y是雙重的,仍然存在以證明這一事實。
這是做這件事:
%設定ClassName
用來匹配情況下,您希望清除類的名稱。
ClassName = 'MyClass';
%下面的代碼:
VarsStruct = whos;
VarsCellArray = cat(3, cellstr(char(VarsStruct(:).name)), cellstr(char(VarsStruct(:).class)));
ClassInstanceIndices = find(ismember(VarsCellArray(:,:,2), ClassName));
ClassInstanceNames = VarsCellArray(ClassInstanceIndices,:,1)';
clear(ClassInstanceNames{:});
我想清除類*定義*,而不是類實例。當然,首先清除類實例是絕對必要的,但我已經知道如何去做。 – niels
要清除類的定義,包括所有的常量屬性數據,有必要從內存
clear classname
一舉兩得之類的以下
- 清除所有實例。
它必須按上述順序完成。反轉該命令將使常量屬性數據卡在內存中(從R2013b開始),直到發出clear classes
。
'clear'應該可以正常工作,以清除各個實例,而不管它們包含什麼。 –
*是的,但在前面的評論中描述的情況下,它似乎不起作用。你嘗試過嗎?*很多次。應用'clear'時,應該自動調用屬性的delete()方法。如果你遇到了一個異常的例子,你應該啓動一個線程來演示它,以便更好地檢查它。沒有其他提到的記錄,AFAIK,但它很容易測試。使用包含大數組的常量屬性創建類實例。在Windows上,您可以在Tsk Mgr中看到,即使在刪除對象後,Constant屬性中的內存也不會被取消分配。 –
這很奇怪,因爲我也嘗試了很多次。假設'myobj'是一個(句柄)類實例,'myproperty'是其中一個包含另一個(句柄)類實例的屬性,調用'clear myobj.myproperty'似乎什麼也不做。如果清除this.myproperty在myobj的一個方法中調用,情況也是如此。但是,調用'myobj.myproperty.delete'似乎實際上按預期刪除了該對象。 – niels
- 1. 自定義清除按鈕
- 2. 清除自定義ListAdapter
- 3. 如何清除MATLAB中的控制檯?
- 4. 在Orbeon中自定義按鈕清除
- 5. C++類型定義不清
- 6. 無法在Matlab中更新類定義
- 7. 在JavaScript中封裝類清除器的類名定義名稱空間
- 8. 在matlab函數中清除java內存
- 9. 自定義矢量的清除功能
- 10. 如何清除/刪除matlab中的.txt文件的內容
- 11. 在gradle中爲jar清單定義自定義類路徑
- 12. 在Matlab類中有自清單嗎?
- 13. Joomla - JTable和JModelBase類的清晰定義?
- 14. Ti-Nspire CX CAS:清除主屏幕,clc清除相當於Matlab
- 15. 如何清除此錯誤「方法getBufferedImage()未定義類型opencv_core.IplImage」
- 16. Bootstrap標籤自動清除自定義值後類型
- 17. 自定義緩存清除在system.web.optimization
- 18. Android自定義KeyBoardView清除默認鍵
- 19. ReferenceError:尚未定義清除導航器
- 20. Django自定義表單驗證/清除
- 21. 清除WordPress自定義瞬態值
- 22. Mapbox.js:清除自定義圖例?
- 23. 清除自定義適配器
- 24. 爲win32定義清除功能&& linux
- 25. 自定義清除不投擲
- 26. 定義,MATLAB
- 27. Matlab未定義變量「txt」或類「txt」
- 28. 清除輸入字段:未定義的方法`清除'爲#<Watir :: Input:XYZ>(NoMethodError)
- 29. 在MATLAB中自定義dbstop
- 30. 清除類(new ClassName())
爲了完整我想補充一點,實例也可以隱藏在圖形和其他圖形對象的userdata組件中。這些不會與whos一起出現。 – bdecaf
不幸的是,這不是完全清除類定義。例如,即使在所有實例已被刪除之後,常量屬性數據仍保留在內存中。 –