2013-04-29 46 views
-1

我具有顯示在工作區中的消息,其將基本上說'var1=var2',其中var1的是字符串,包含在載體中,這樣的問題:顯示「VAR1 = VAR2」 MATLAB

U1 = 
u3 
v3 
u4 
v4 

變量的指數和變量的實際數量可能會有所不同,並由用戶的輸入決定。

var2的由函數來計算,並且還包含在與相同尺寸的載體,例如:

U = 
    0.0625 
    0.2500 
     0 
    0.1250 

我想要的功能,顯示這是這樣一個信息:

'u3=0.0625' 

'v3=0.2500' 

等等。

我嘗試這樣做:

for l1=1:numel(U) 
    n7=U1(l1); 
    n8=U(l1); 
    sprintf('''%f'', = ''%f''', n7, n8) 
end 

但是,這告訴我,「sprintf的」多輸入,沒有定義。

任何人都可以幫助我嗎?當然它一定是愚蠢的東西,但我不能在網絡上找到一個例子..

+0

你不應該猜測讀者你正在使用什麼類型的變量。將您在命令行中獲得的輸出放在顯示變量的位置不足以產生最小的工作示例。 – Oleg 2013-04-29 23:00:37

+0

對不起,它已經晚了,我可能錯過了一些要點 – FreackH 2013-04-30 09:16:07

回答

0

格式輸入應該是一個字符串:

sprintf('%s = %.4f', n7, n8) 
+0

???錯誤使用==> sprintf 函數沒有爲'sym'輸入定義。 錯誤==> syscalcPS在181 的sprintf( '%s =%.4f',N7,N8) – FreackH 2013-04-29 22:25:29

+0

我轉換變量使用 'num2str' 字符串,但它沒有工作 – FreackH 2013-04-29 22:28:00

+0

使用也'N7 = CHAR( U1(l1))'在你的循環中調用sprintf之前。 – Oleg 2013-04-29 22:33:54

1

可能有更優雅的方式來做到這一點,但一個簡單的:

for a=1:length(strings) 
    disp(['''', strings(a), '=', num2str(values(a)), '''']) 
end 

應該做的伎倆,確保是一個字符串數組,是包含價值觀之一,他們具有相同的長度。

+0

,這給了我6錯誤,其中第一個說: ???錯誤:使用==> sym.sym> convertExpression at 2547 錯誤:意外的'''[line 1,col 1] – FreackH 2013-04-30 09:27:28

+0

它不喜歡連續出於某種原因的4個引號 – FreackH 2013-04-30 09:30:46

相關問題